mysql数据库的优化整理之插入数据优化

来源:互联网 发布:如何手机注册淘宝联盟 编辑:程序博客网 时间:2024/06/08 00:27

插入数据时,影响插入速度的主要是索引,唯一性校验,一次插入的数据条数等等。

插入数据的优化,不同的存储引擎优化手段不一样,在mysql中常用的存储引擎有,MyISAM 和 InnoDB

· MyISAM是非事物安全类型的,而InnoDB是事物安全型的

· MyISAM锁的粒度是表级,而InnoDB支持行级锁定

· MyISAM支持全文类型索引,而InnoDB不支持全文索引

· MyISAM相对简单,所以效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

· MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少麻烦。

· InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事物表(alert table tablename type=innodb)。

如果要执行大量的select可以使用MyISAM,如果大量的insert或update可以使用InnoDB。

MyISAM

禁用索引:ALERT TABLE TABLE_NAME DISABLE KEYS

开启索引:ALERT TABLE TABLE_NAME ENABLE KEYS

禁用唯一性检查:SET UNIQUE_CHECKS=0;

开启文艺性检查:SET UNIQUE_CHECKS=1;

插入数据时,可以一次插入一条,也可以一次插入多条,插入多条速度更快

使用LOAD DATA INFILE 当需要批量导入数据时,使用LOAD DATA INFILE 语句插入速度快很多。


InnoDB

禁用唯一性检查    用法和MyISAM一样

禁用外检检查    SET foreign_key_checks=0;

启动外检检查    SET foreign_key_checks=1;

禁止自动提交事务    SET autocommit=0;

开启自动提交事务    SET autocommit=1;

了解更多mysq数据库优化请参考我的其他文章
















原创粉丝点击