mysql添加数据很慢(mysql如何优化插入记录速度)
mysql添加数据很慢
mysql如何优化插入记录速度插入记录时,影响插入速度的主要是索引、唯一性校验、一次插入记录条数等。根据这些情况,可以分别进行优化,本节将介绍优化插入记录速度的几种方法。
一. 对于MyISAM引擎表常见的优化方法如下:
1. 禁用索引。对于非空表插入记录时,MySQL会根据表的索引对插入记录建立索引。如果插入大量数据,建立索引会降低插入记录的速度。为了解决这种情况可以在插入记录之前禁用索引,数据插入完毕后在开启索引。禁用索引的语句为: ALTER TABLE tb_name DISABLE KEYS; 重新开启索引的语句为: ALTER TABLE table_name ENABLE KEYS; 对于空表批量导入数据,则不需要进行此操作,因为MyISAM引擎的表是在导入数据之后才建立索引的。
2. 禁用唯一性检查:数据插入时,MySQL会对插入的记录进行唯一性校验。这种唯一性校验也会降低插入记录的速度。为了降低这种情况对查询速度的影响,可以在插入记录之前禁用唯一性检查,等到记录插入完毕之后再开启。禁用唯一性检查的语句为: SET UNIQUE_CHECKS=0; 开启唯一性检查的语句为: SET UNIQUE_CHECKS=1;
3. 使用批量插入。使用一条INSERT语句插入多条记录。如 INSERT INTO table_name VALUES(....),(....),(....)
4. 使用LOAD DATA INFILE批量导入当需要批量导入数据时,使用LOAD DATA INFILE语句导入数据的速度比INSERT语句快。
二. 对于InnoDB引擎的表,常见的优化方法如下:
1. 禁用唯一性检查。同MyISAM引擎相同,通过 SET UNIQUE_CHECKS=0; 导入数据之后将该值置1。
2. 禁用外键检查。插入数据之前执行禁止对外键的查询,数据插入完成之后再恢复对外键的检查。禁用外键检查语句为: SET FOREIGN_KEY_CHECKS=0; 恢复对外键的检查语句为: SET FOREIGN_KEY_CHECKS=1;
3. 禁止自动提交。插入数据之前禁止事务的自动提交,数据导入完成之后,执行恢复自动提交操作。禁止自动提交语句为: SET AUTOCOMMIT=0; 恢复自动提交只需将该值置1。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持开心学习网!
- 怎么查看mysql运行日志(通过Query Profiler查看MySQL语句运行时间的操作方法)
- centos系统mysql安装及连接教程(CentOS8安装SQLServer2019的过程)
- mysql清空数据库所有表格(MySQL用truncate命令快速清空一个数据库中的所有表)
- apache2.4支持php5.5吗(WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置)
- mysqlselect语句汇总(MySQL Select语句是如何执行的)
- 如何找到mysqlroot密码(WDCP管理面板忘记MYSQL ROOT密码及重置后台登录密码的方法汇总)
- php实现redis核心代码(PHP结合Redis+MySQL实现冷热数据交换应用案例详解)
- 通过接口访问mysql数据库(使用mysql记录从url返回的http GET请求数据操作)
- mysql锁技术(MySQL 加锁控制并发的方法)
- mysql常用的sql语句大全(mysql建表常用的sql语句汇总)
- mac版本php环境搭建(在Mac OS X中配置Apache+PHP+MySQL运行环境的详细步骤)
- mysql自增主键创建过程(深入谈谈MySQL中的自增主键)
- 最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)(最新版MySQL 8.0.22下载安装超详细教程Windows 64位)
- mysql有什么索引(MySQL 普通索引和唯一索引的区别详解)
- mac的mysql连接问题如何解决(MAC 中mysql密码忘记解决办法)
- mac更改mysql密码(Mac下mysql 8.0.22 找回密码的方法)
- 古人十句 戒骄 名言,醍醐灌顶,受益匪浅(古人十句戒骄名言)
- 《道德经》:功成不局,泰而不骄(道德经:功成不局)
- 每日一典 过江之鲫(每日一典过江之鲫)
- 红色代表什么(红色代表什么意义和象征)
- 菲律宾安全吗(菲律宾安全吗2023)
- 彩礼重要吗()
热门推荐
- Convert.ToInt32,int.Parse,int.TryParse,(int)的区别
- python爬虫开源代码(Python实现的文轩网爬虫完整示例)
- 如何查询8080端口是否被封(8080端口被占用怎么办?如何关闭被占用的8080端口)
- sql server高可用的实现方式(sql server 编译与重编译详解)
- mysql 如何选择隔离级别(全面解析MySQL中的隔离级别)
- dedecms标签怎么调用(DedeCMS织梦后台模板列表如何按字母排序方法代码)
- 云计算与服务器托管区别(使用云服务器托管对于企业的好处有哪些?)
- ASP.NET List 集合操作
- dedecms手机独立域名(DedeCMS Wap.php 绑定域名的解决办法)
- vue实现双向绑定原理(vue实现双向数据绑定)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9