MYSQL的一些總結(jié)
MYSQL版本:5.6.22
---------------------表的數(shù)據(jù)分布----------------- 表名 總記錄數(shù) 某賬號(21136) 占有率 t_user_weibo 5060371條 5061305條 99.98%
t_user_follow 111016條 110011條 99.09%
·在tuserweibo未加任何索引 userweibo 全表掃描 瓶頸:secondtime排序 所有賬號查詢緩慢
·在tuserweibo表的secondtime字段加索引后 userweibo 走 second_time 索引肩袍, 現(xiàn)象:21136賬號查詢速度很快矫渔,而999賬號查詢速度很慢(999賬號好友發(fā)布的心情都比較分散)
分析過程:
如何按照常規(guī)思路胳蛮,先對進(jìn)行條件篩選友扰,然后再排序撩笆,應(yīng)該21136的查詢速度>=999賬號的查詢速度(因?yàn)?1136的數(shù)據(jù)量遠(yuǎn)高于999)庐氮。
因此推斷误阻,是先排序抖所,然后進(jìn)行篩選記錄行拢。 于是就修改了999好友發(fā)布的心情祖秒,將它的心情發(fā)布時(shí)間改到最新的時(shí)間。結(jié)果舟奠,果然查詢速度變快竭缝。 因此,我們堅(jiān)定了這個(gè)推斷沼瘫。
為了能夠再進(jìn)一步說明這個(gè)推斷抬纸,我們新建了一個(gè)賬號()并給它建了300個(gè)好友賬號, 然后每個(gè)賬號發(fā)10條心情(發(fā)布時(shí)間都比較新)耿戚。 預(yù)測湿故;查詢速度應(yīng)該很快。結(jié)果:果然很快丫膜蛔!
推測結(jié)論:
首先對數(shù)據(jù)進(jìn)行全表排序坛猪, 然后排序的過程中去跟查詢條件進(jìn)行比較,如果符合條件就return,當(dāng)return的結(jié)果集與limit的值相等時(shí)皂股,查詢結(jié)束墅茉。