MySQL 資料庫 到底能支撐多少表?

babyyellow發表於2015-08-20


MySQL  資料庫到底能支撐多少個表? 

原則上來說應該是無限的, 但是又收到了作業系統某些引數的限制.  記憶體大小的限制. 

根據 mysql 5.7 的文件,  裡面提到了一點 : 

 table_open_cache

System Variable Name table_open_cache
Variable Scope Global
Dynamic Variable Yes
Permitted Values (<= 5.6.7) Type integer
Default 400
Min Value 1
Max Value 524288
Permitted Values (>= 5.6.8) Type integer
Default 2000
Min Value 1
Max Value 524288



這個引數 資料庫能夠開啟的表的最大數目, 考慮到2,8 原則, 那麼假設所有的這些cache 都是熱表, 那麼就是再 * 5 倍  大約 26萬個表. 

實際情況呢: 


我們再一個專案中,設計的時候,開了 20000個表,  32G 記憶體   8 core * 2  cpu  8*300g  sas  硬碟 的硬體 . 

在測試的時候就已經無法忍受了, 啟動資料庫超慢, 一個show  table status  就要等幾分鐘, 這還是沒有壓力的情況下. 

已經無法投產了, 最後重新評估,各種修改 ,  然後設定了4000多個表.  各種問題就沒有了. 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-1777482/,如需轉載,請註明出處,否則將追究法律責任。

相關文章