Mysql

太多的表會減慢 Mysql 的速度嗎?

  • May 19, 2019

我正在製作一個應該能夠處理超過 1,000,000,000 行的數據庫。

為了優化它的性能,我決定拆分錶。

因此,我不會將 1,000,000,000 個條目放在一個表中超過 10 年,而是將其拆分為 3650 個表和每天一個表。

現在只有 2 個查詢的連接或聯合,我想知道是否有太多的表會降低性能,如果是,會降低多少?

總體而言,拆分錶會增加成本,以獲得不存在的感知收益。就索引和規範化而言,確實需要仔細設計數十億行的表,但是拆分會增加計算/軟體成本,並且可能會產生更糟糕的查詢。

直接回答問題:

磁碟上太多的表對 MySQL 沒有影響(除非你有一個文件系統不能從一個非常完整的目錄快速打開文件名(在 8.0(表空間中的 frm 數據)和innodb_file_per_table =0 中得到緩解)。

至於活動表,那些在查詢中經常使用的表有以下影響:

table_open_cache限制記憶體表的數量, innodb_open_files也是如此。

超過這些記憶體限制將導致表關閉和打開,並且需要重新檢查,從而增加查詢的成本。

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