“优化插入记录的速度”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (建立内容为“1”的新页面) |
Jihongchang(讨论 | 贡献) |
||
| 第1行: | 第1行: | ||
| − | + | === 插入记录时,索引、唯一性校验都会影响插入记录的速度 === | |
| + | 插入记录时,MySQL 会根据表的索引对插入的记录进行排序。 | ||
| + | |||
| + | 如果插入大量数据时,这些排序会降低插入记录的速度。 | ||
| + | |||
| + | 为了解决这种情况,在插入记录之前先禁用索引。 | ||
| + | |||
| + | 等到记录都插入完毕后再开启索引。 | ||
| + | |||
| + | ==== 禁用索引 ==== | ||
| + | <syntaxhighlight lang="sql"> | ||
| + | alter table 表名 disable keys; | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ==== 重新开启索引 ==== | ||
| + | <syntaxhighlight lang="sql"> | ||
| + | alter table 表名 enable keys; | ||
| + | </syntaxhighlight>对于新创建的表,可以先不创建索引。等到记录都导入以后再创建索引。这样可以提高导入数据的速度。 | ||
2024年7月10日 (三) 02:18的版本
插入记录时,索引、唯一性校验都会影响插入记录的速度
插入记录时,MySQL 会根据表的索引对插入的记录进行排序。
如果插入大量数据时,这些排序会降低插入记录的速度。
为了解决这种情况,在插入记录之前先禁用索引。
等到记录都插入完毕后再开启索引。
禁用索引
alter table 表名 disable keys;
重新开启索引
alter table 表名 enable keys;
对于新创建的表,可以先不创建索引。等到记录都导入以后再创建索引。这样可以提高导入数据的速度。