我的语句是这样的
`select count(*) as t from site where islook>0 and lang='zh'`
我的网站是 https://887d.com/
数据库是Mariadb兼容Mysql
我把islook设为索引,但是都不走,lang字段设为索引虽然走了,但没法提高性能。记录数30万,统计这个记录需要大概2秒。
怎么办?请高手指教.
表结构还有一个分类,分类是存在另一个表中,就是网站的类型比如军事,科技之类的,但这个没有影响到性能。select具体内容的时候可能因为有limit 0,10内容数量的限止也非常快,只要0.005ms。就是count统计时好像需要全表扫描,百度一下只能加索引能快些,然后就是把统计结果保存起来,但是统计结果类型非常多,比如islook>0,也有islook>1,也有不同国家等需要统计,所以缓存统计结果太杂了,也不是太好的办法。真想不好呀。
#11
更多评论
楼主确定自己不是来做网站推广的?
mysql系的数据库其实走不走索引完全看心情...
它的优化器不行的.
你的islook是否是个布尔变量?
如果是的话,索引基本没用不会走的.
lang的话是否绝大多数记录都是zh?
这样的话索引就算走也没用的.
30W的记录统计一个count都需要2秒...
我觉得你需要考虑换一个稳定版本或者换用数据库.
#2