“优化插入记录的速度”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第1行: 第1行:
=== 插入记录时,索引、唯一性校验都会影响插入记录的速度 ===
+
插入记录时,<u><big>'''索引'''</big></u>、<big><u>'''唯一性校验'''</u></big>都会影响插入记录的速度
 +
 
 +
=== 禁用索引 ===
 
插入记录时,MySQL 会根据表的索引对插入的记录进行排序。
 
插入记录时,MySQL 会根据表的索引对插入的记录进行排序。
  
第17行: 第19行:
 
alter table 表名 enable keys;
 
alter table 表名 enable keys;
 
</syntaxhighlight>对于新创建的表,可以先不创建索引。等到记录都导入以后再创建索引。这样可以提高导入数据的速度。
 
</syntaxhighlight>对于新创建的表,可以先不创建索引。等到记录都导入以后再创建索引。这样可以提高导入数据的速度。
 +
 +
 +
=== 禁用唯一性校验 ===
 +
插入数据时,MySQL 会对插入的记录进行唯一性校验。这种校验也会降低插入记录的速度。
 +
 +
可以在插入记录之前禁用唯一性检查。等到记录插入完毕后再开启。
 +
 +
==== 禁用唯一性检查 ====
 +
<syntaxhighlight lang="sql">
 +
set unique_checks=0;
 +
</syntaxhighlight>
 +
 +
==== 重新开启唯一性检查 ====
 +
<syntaxhighlight lang="sql">
 +
set unique_checks=1;
 +
</syntaxhighlight>
 +
 +
 +
 +
=== 优化 insert 语句 ===

2024年7月10日 (三) 02:23的版本

插入记录时,索引唯一性校验都会影响插入记录的速度

禁用索引

插入记录时,MySQL 会根据表的索引对插入的记录进行排序。

如果插入大量数据时,这些排序会降低插入记录的速度。

为了解决这种情况,在插入记录之前先禁用索引。

等到记录都插入完毕后再开启索引。

禁用索引

alter table 表名 disable keys;

重新开启索引

alter table 表名 enable keys;

对于新创建的表,可以先不创建索引。等到记录都导入以后再创建索引。这样可以提高导入数据的速度。


禁用唯一性校验

插入数据时,MySQL 会对插入的记录进行唯一性校验。这种校验也会降低插入记录的速度。

可以在插入记录之前禁用唯一性检查。等到记录插入完毕后再开启。

禁用唯一性检查

set unique_checks=0;

重新开启唯一性检查

set unique_checks=1;


优化 insert 语句