gpt4 book ai didi

mysql - 为什么我要对这个非常简单的 MySQL 查询进行文件排序?

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:24 25 4
gpt4 key购买 nike

表格有两列:

CREATE TABLE items ( 
k INT auto_increment PRIMARY KEY,
val INT UNSIGNED
) ENGINE=MyISAM;

我在表中放了四个项目:

INSERT INTO items (val) VALUES (12),(23),(45),(56);

现在如果我这样做:

EXPLAIN SELECT * FROM items ORDER BY k;

我得到了可怕的“使用文件排序”。这是怎么回事?根据this page ,它应该使用索引进行排序。我做错了什么吗?

在 XP 上的 MySQL 5.0.41 和 ubuntu 上的 5.0.67 上测试。

更新:我向表中添加了 1,110,000 行,我添加了一个 VARCHAR 列并用文本填充它。表格大小现在是 135MB,我仍然在“使用文件排序”。

  1. 有人对如何快速添加大量行有任何提示吗?
  2. 在什么时候我应该考虑一个“足够大”的表来进行查询优化测试?

最佳答案

嗯,也许,只是也许,它足够聪明,可以弄清楚整个表可以放在一个 block 中,而且它不会费心去读取索引。将整个表读入内存并对其进行排序可能会更快(如果有必要 - 很有可能它已经在 block 内按键排序)。

用更大的 table 试试。

关于mysql - 为什么我要对这个非常简单的 MySQL 查询进行文件排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1097721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com