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去掉也节约不了多少时间
如果你表中真的只有3k的数据的话那这个没有可优化的地方了。这种场景下大部分db都会直接走全表扫描。
如果数据量大的话需要看下你news_content的cateid的稀疏度,如果就那么几个可选值的话索引也没意义。
另者,你查询中的cateid也应该从news_cate中去筛选吧,虽然结果一样,但逻辑意义不同。
插入虚似表操作,比较快点
两个问题
1、你希望多少秒才是对的或者符合你的要求。
2、你怎么知道的0.3秒。
用子查询
先查news十条,再使用左连接关联news_cate。另外你的content字段估计有点大,这个影响一定的性能。
再者:0.3s似乎也可以接受。。
0.3秒3000条,看着很正常啊..
0.3秒可以接受吧
id上有没有索引?cateid上也加个索引试试呢