Heim  >  Fragen und Antworten  >  Hauptteil

Gibt es eine Möglichkeit, die Leistung von MySQL-Importen zu verbessern, die mit der Zeit langsamer werden?

Ich habe eine riesige mysqldump-Datei (~700 GB) und möchte sie auf einem anderen Server wiederherstellen. Für das erste GB ist die Importgeschwindigkeit ziemlich hoch, etwa MB/s, aber nach ein paar GB Daten sinkt die Geschwindigkeit auf 50 kb/s bis 200 kb/s.

Die Parameter für mysqldump sind --skip-comments --no-create-info --no-autocommit --quick --extended-insert --insert-ignore --compress, daher wurden einige Geschwindigkeitsverbesserungen vorgenommen.

Der Import erfolgt über pv /file.sql | 完成的mysql -u 用户 DB

Ich habe auch mysqltuner ausgeführt und einige seiner Einstellungen verbessert.

Ich frage mich: Ist es üblich, dass ein so großer MySQL-Dump nach einer Weile langsamer wird? Oder gibt es etwas, das noch verbessert werden kann?

P粉969253139P粉969253139288 Tage vor504

Antworte allen(1)Ich werde antworten

  • P粉201448898

    P粉2014488982024-01-06 08:18:50

    导入大量数据时,应禁用以下功能。

    1. 禁用触发器
    2. 禁用索引
    3. 禁用约束或检查
    4. 禁用外键

    因为每次插入时,数据库都会检查插入记录在其他表中的关系。随着桌子变得越来越大,这个过程开始减慢。每次插入期间,数据库还会对该表的索引执行额外的插入操作或运行插入触发器。

    另外,由于MySQL中的事务很弱,所以需要工作,以便commit不是每次插入后都工作,可以使用commit命令,例如每10000条记录插入后一次。

    Antwort
    0
  • StornierenAntwort