Mysql
在 MySQL 中使用數千個表的性能損失
背景
我正在使用 WordPress 多站點,其中每個使用者都有一個單獨的部落格。對於每個部落格,額外創建了 15 個表。該網站將被成千上萬的使用者使用。這意味著將有超過 15,000 個表隨著每個使用者的增長而增長。
問題
- 在單個數據庫上擁有這麼多表是否會降低性能?
- 與單個 WordPress 安裝相比,它有多重要?
有一天 WP 會意識到他們為每個使用者設計 1 個數據庫的設計存在擴展問題。1 個使用者與 100 個使用者可能差別不大。1K-10K 開始表現出疼痛,這取決於有多少“活躍”。
1000 個數據庫意味著文件系統中有 1000 個子目錄。這是作業系統中的一些負擔。(10K 會更糟。)
15K 表可能是也可能不是問題。例如,如果有 100 個部落格處於活動狀態,那麼就有 1500 個表處於活動狀態。這意味著您可能應該
table_open_cache
設置為 1500 左右。(加上其他設置可能需要提高。)但是…如果您沒有性能問題的症狀,請不要擔心。也許您的使用者非常輕量級,這不是問題。