提问人:Ning 提问时间:11/8/2023 最后编辑:Ning 更新时间:11/15/2023 访问量:71
Mysql 8.0 问题 查询结果快,但插入慢
Mysql 8.0 problem Quick query results, but slow insertion
问:
我从一个20GB的数据表A查询,查询结果是40000行数据。我的查询是“从 A 中选择不同的客户,其中”2022-01-01“介于 col1 和 col2 之间。由于 col1 和 col2 已建立索引,因此我可以在短短 3 秒内获取所有 40,000 行数据。但是,当我想将此结果插入表 B 时,查询变成了“插入表 B 从 A 中选择不同的客户,其中 '2022-01-01' 介于 col1 和 col2 之间”,花了 5 分钟。这是什么原因?
5 分钟是一次全表扫描所需的时间。
当我添加“插入”操作时,SELECT 语句的“EXPLAIN”结果中的“type”从“range”更改为“ALL”。
答:
0赞
Ning
11/15/2023
#1
MySQL优化器认为,在插入过程中使用索引可能会降低效率,因此,它默认为全表扫描。但是,当我使用 FORCE INDEX 时,插入速度显着提高,并且不再执行全表扫描。建议在适当的时间强制使用索引,而不是让优化程序决定查询计划。
评论
insert