鍍金池/ 問答/數(shù)據(jù)庫/ mysql緩沖池很大,但數(shù)據(jù)讀取仍然比較慢,應(yīng)該怎么做?

mysql緩沖池很大,但數(shù)據(jù)讀取仍然比較慢,應(yīng)該怎么做?

使用MariaDB 10.0.2,使用 innodb存儲引擎,數(shù)據(jù)庫本身只有10個g,但數(shù)據(jù)庫緩沖池(innodb_buffer_pool)已經(jīng)設(shè)置為12g, 緩沖池實例開了兩個.但是在查詢的時候千萬級的表讀取仍然需要較久.
我在考慮是否數(shù)據(jù)并未完全進入到緩沖池中?還是說數(shù)據(jù)因為設(shè)置問題(比如我記得有一些參數(shù)控制數(shù)據(jù)在緩沖池中的表現(xiàn),到了緩沖池LRU列表的 3/8 那里必須停留一段時間才能成為頭部熱數(shù)據(jù)等類似這種設(shè)置)導(dǎo)致的這種明明內(nèi)存足夠大,DB表現(xiàn)卻并不好的情況?
所以我想請教大神,是否我有一些相關(guān)配置參數(shù)我沒有考慮到,導(dǎo)致即使高內(nèi)存還是沒有更好的表現(xiàn)?還是說是其他問題,請大佬賜教接下來的思路和方案,感謝!

回答
編輯回答
尐懶貓

如果是大表查詢慢,重點是看查詢語句的執(zhí)行計劃,數(shù)據(jù)庫緩沖池的大小并不是最重要的影響因素。
建議重點排查幾點:
1、查詢條件的字段,是否有合適的索引
2、是否關(guān)聯(lián)了過多的表
3、能否去掉不必要的排序操作

2018年7月22日 07:51