如何在 mysql 中禁用 innodb 中的索引
How to disable index in innodb in mysql
我的 mysql
版本是 8.0
。我有一个 InnoDB table
超过 10 million rows
的数据,数据 file size
是 2G
.
我每次都使用pd.to_sql
插入several thousand rows
的数据。启用index
时,插入速度为very slow
.
如何temporarily disable
index
?而插入完成后,enable the index
?
我试过How to disable index in innodb中的操作:
SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;
但索引 still
有效。
- 删除索引
- 插入您的数据
- 创建索引
不,还有其他问题。
请详细说明涉及的代码。在 1000 万行中插入几千行 table 不会从重建索引的高成本中获益。
请提供 SHOW CREATE TABLE
以便我们查看索引。 UNIQUE
索引的处理方式不同。 FOREIGN KEYs
增加开销。批处理行有很大帮助,但 10K 行处于高效的高端。 PRIMARY KEY
是什么?行是否以任何 predictable 顺序插入?
我的 mysql
版本是 8.0
。我有一个 InnoDB table
超过 10 million rows
的数据,数据 file size
是 2G
.
我每次都使用pd.to_sql
插入several thousand rows
的数据。启用index
时,插入速度为very slow
.
如何temporarily disable
index
?而插入完成后,enable the index
?
我试过How to disable index in innodb中的操作:
SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;
但索引 still
有效。
- 删除索引
- 插入您的数据
- 创建索引
不,还有其他问题。
请详细说明涉及的代码。在 1000 万行中插入几千行 table 不会从重建索引的高成本中获益。
请提供 SHOW CREATE TABLE
以便我们查看索引。 UNIQUE
索引的处理方式不同。 FOREIGN KEYs
增加开销。批处理行有很大帮助,但 10K 行处于高效的高端。 PRIMARY KEY
是什么?行是否以任何 predictable 顺序插入?