MYSQL的一些总结
MYSQL版本:5.6.22
---------------------表的数据分布----------------- 表名 总记录数 某账号(21136) 占有率 t_user_weibo 5060371条 5061305条 99.98%
t_user_follow 111016条 110011条 99.09%
·在tuserweibo未加任何索引 userweibo 全表扫描 瓶颈:secondtime排序 所有账号查询缓慢
·在tuserweibo表的secondtime字段加索引后 userweibo 走 second_time 索引, 现象:21136账号查询速度很快,而999账号查询速度很慢(999账号好友发布的心情都比较分散)
分析过程:
如何按照常规思路,先对进行条件筛选,然后再排序,应该21136的查询速度>=999账号的查询速度(因为21136的数据量远高于999)。
因此推断,是先排序,然后进行筛选记录。 于是就修改了999好友发布的心情,将它的心情发布时间改到最新的时间。结果,果然查询速度变快。 因此,我们坚定了这个推断。
为了能够再进一步说明这个推断,我们新建了一个账号()并给它建了300个好友账号, 然后每个账号发10条心情(发布时间都比较新)。 预测;查询速度应该很快。结果:果然很快丫!
推测结论:
首先对数据进行全表排序, 然后排序的过程中去跟查询条件进行比较,如果符合条件就return,当return的结果集与limit的值相等时,查询结束。
网友评论