zoukankan      html  css  js  c++  java
  • 8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载到InnoDB 表

    8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载到InnoDB 表

    这个性能tips 补充常用的准则用于快速插入数据Section 8.2.2.1, “Speed of INSERT Statements”.

    当数据插入到InnoDB,关闭自动提交模式,因为它执行一个log flush 到磁盘在每次插入。

    关闭自动提交在你的导入操作

    SET autocommit=0;
    … SQL import statements …
    COMMIT;

    mysqldump 选项 –opt 创建dump 文件快速导入到一个InnoDB 表,

    即使没有包装和设置autocommit和COMMIT 语句:

    如果你有一个唯一约束 在secondary keys,你可以加速表导入通过使用临时关闭 唯一检查在你导入的会话:

    SET unique_checks=0;
    … SQL import statements …
    SET unique_checks=1;

    对于大表,这个可以节约大量的磁盘 I/O, 因为InnoDB 可以使用它的change buffer

    来写 secondary index records in a batch. 确认数据没有重复

    如果你的表有FOREIGN KEY 约束在你的表里, 你可以加速表导入通过关掉外键约束在导入期间:

    SET foreign_key_checks=0;
    … SQL import statements …
    SET foreign_key_checks=1;

    对于大表,这样可以节省磁盘I/O

    Use the multiple-row INSERT syntax ,降低连接开销在客户端和服务端 如果你需要插入很多记录

    INSERT INTO yourtable VALUES (1,2), (5,5), …;

    这个技巧是有效的对于插入到任何表,不只是InnoDB 表:

    当做批量插入表在 auto-increment columns, 设置innodb_autoinc_lock_mode 为2 代替默认值1

    为获得最佳性能,当加载数据到InnoDB FULLTEXT index, 按照下面的步骤:

    CREATE TABLE t1 (
    FTS_DOC_ID BIGINT unsigned NOT NULL AUTO_INCREMENT,
    title varchar(255) NOT NULL DEFAULT ”,
    text mediumtext NOT NULL,
    PRIMARY KEY (FTS_DOC_ID)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    CREATE UNIQUE INDEX FTS_DOC_ID_INDEX on t1(FTS_DOC_ID);

    Load the data into the table.

    Create the FULLTEXT index after the data is loaded.

  • 相关阅读:
    模块二:操作系统windows 7 的使用
    茶卡盐湖
    css元素居中指南
    新的CMS套站
    写响应式页面
    积累
    jquery方法整理
    积累 做网站添加的 所有动态效果
    产品中心有二级三级栏目。
    aspcms
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351259.html
Copyright © 2011-2022 走看看