19
回答
mysql七十万数据查询很慢,求大神们帮我看看哪里错了。
终于搞明白,存储TCO原来是这样算的>>>   
一共七十多万条数据,而且还是分了四张表的,

novel_chapter
novel_chapter_1
novel_chapter_2
novel_chapter_3
novel_chapter_4


sql语句也非常简单
SELECT id,name FROM `novel_chapter` WHERE id=xx

nid的索引也建立了的,


查询一千条数据出来没问题,但是查询两千,三千,四千的时候就非常慢了,十多秒。


请问我哪里错了吗?
举报
未梦
发帖于3年前 19回/2K+阅
共有19个答案 最后回答: 3年前
表结构,sql,执行计划,都没贴,都不知道怎么说
--- 共有 1 条评论 ---
未梦结构: id nid name content time id主键,nid索引。 没有执行计划, sql就是问题里面说那句,结构: id nid name content time id主键,nid索引。 没有执行计划, sql就是问题里面说那句, SELECT id,name FROM `novel_chapter` WHERE nid=xx 3年前 回复
explain select id,name from novel_chapter where nid=xx 看执行计划。
另外
select  count(DISTINCT nid) from novel_chapter;
select count(*) from novel_chapter;
select count(*) from novel_chapter where nid=xx;
看这三个数是否太接近。
--- 共有 4 条评论 ---
聽雨人回复 @未梦 : 如果还是不行就做个nid_name的索引,看能不能用上覆盖索引,那样的话可以减少读取行数据。 3年前 回复
聽雨人回复 @未梦 : innodb 表的话试下这个看会不会好点。另外content字段应该很长吧,能独立出去最好 select id,name from novel_charpter where id in ( select id from novel_charpter where nid=xxx ); 3年前 回复
未梦第一句执行结果【possible_keys。nid_vid_time_Index,nid_time_Index,nid_index。key。nid_index。key_len。4。】 第二句执行结果【1456】 第三句执行结果【746369】 第四句执行结果【4641】 3年前 回复
keyganker顶! 3年前 回复
顶部