Mysql

mysql中緩衝池大小不足時會發生什麼

  • May 31, 2016

讓我們假設我對一個非常大的表執行查詢。我的緩衝池大小盡可能小。現在會發生什麼?我是否會收到關於緩衝池空間不足的錯誤,或者 mysql 會從磁碟中獲取數據?只是想知道 mysql 在這種情況下的行為。

如果 MySQL 正確啟動並且 InnoDB 使用配置的緩衝池大小初始化,那麼就沒有任何錯誤的理由(當然,除了一些錯誤)。緩衝池就是這樣 - 用於緩衝 IO 的記憶體區域。當沒有足夠的數據來保存所有活動**數據時,伺服器只是從磁碟中讀取它們。

例如,如果您有 100GB 表,那麼許多伺服器將沒有足夠的 RAM 來容納它,您仍然可以執行執行full table scan的查詢。

與有足夠記憶體的情況相比,性能會更差(可能實質上,1-2 個數量級或更多)。

引用自:https://dba.stackexchange.com/questions/139965