MySQL数据表中添加新记录时,插入时会自动按主键排序,还是放在最后?

问题描述 投票:0回答:1

例如,MySQL 中名为 user 的数据表,主键为 id,已经有 3 条记录:

'1001'、'哈哈'、'[电子邮件受保护]'

'1002'、'呵呵'、'[电子邮件受保护]'

'1004'、'oror'、'[电子邮件受保护]'

插入新记录时,是自动按主键排序插入到‘1002’后面,还是放在‘1004’后面?

INSERT INTO user (id,name,email) VALUES ('1003','ThinkPHP','[email protected]')

我想将其插入到“1002”之后。

mysql database dolphindb
1个回答
0
投票

MySQL的默认存储引擎InnoDB按照聚集索引(主键)的顺序存储行。在您的示例中,id 1003 的行将存储在 1002 和 1004 之间。

如果您随后查询行而不指定顺序,它将按某种索引顺序读取它们。它可以读取聚集索引(主键),也可以读取不同的索引,具体取决于查询。

如果您需要以特定顺序返回行,无论从哪个索引读取行,则应在 SQL 查询中使用

ORDER BY
子句。如果您请求的顺序与读取行的顺序相同,则排序将是无操作。

© www.soinside.com 2019 - 2024. All rights reserved.