首页 新闻 会员 周边 捐助

数据只有3000条,select语句却要花0.3秒,请问怎么优化

0
悬赏园豆:20 [已解决问题] 解决于 2016-10-10 11:14

select id,title,content,catename from news_content as news, news_cate as cate where (news.cateid regexp '123') and news.cateid=cate.cateid order by id desc limit 0,10

regexp去掉也节约不了多少时间

bindolphin的主页 bindolphin | 初学一级 | 园豆:8
提问于:2016-01-31 21:35
< >
分享
最佳答案
0

如果你表中真的只有3k的数据的话那这个没有可优化的地方了。这种场景下大部分db都会直接走全表扫描。

如果数据量大的话需要看下你news_content的cateid的稀疏度,如果就那么几个可选值的话索引也没意义。

另者,你查询中的cateid也应该从news_cate中去筛选吧,虽然结果一样,但逻辑意义不同。

收获园豆:20
Daniel Cai | 专家六级 |园豆:10424 | 2016-02-03 17:50
其他回答(7)
0

插入虚似表操作,比较快点

搁忆 | 园豆:612 (小虾三级) | 2016-02-01 08:45
0

两个问题

1、你希望多少秒才是对的或者符合你的要求。

2、你怎么知道的0.3秒。

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-02-01 10:24
0

用子查询

峰和日丽 | 园豆:110 (初学一级) | 2016-02-01 10:25
0

 先查news十条,再使用左连接关联news_cate。另外你的content字段估计有点大,这个影响一定的性能。

再者:0.3s似乎也可以接受。。

幻天芒 | 园豆:37207 (高人七级) | 2016-02-01 14:52
0

0.3秒3000条,看着很正常啊..

吴瑞祥 | 园豆:29449 (高人七级) | 2016-02-01 14:57
0

0.3秒可以接受吧

飞翔の金雕 | 园豆:364 (菜鸟二级) | 2016-02-02 09:52
0

id上有没有索引?cateid上也加个索引试试呢

于为源 | 园豆:956 (小虾三级) | 2016-02-03 08:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册