mysql - sql缓存内存

标签 mysql sql

我有一个包含 10 条记录和一个 ID 字段作为主键的表。 我的许多查询也不包括 ORDER BY id。例如,它们看起来像:

SELECT * FROM `branch`

当我错误地删除了ID为1的记录时,我的问题就开始了,然后为了纠正我的错误,我插入了一条具有相同ID和内容的记录。 但是现在,在我所有的查询中,后来插入的行是最后一行。 我的意思是,ID 的顺序是:2,3,4,5,6,7,8,9,10,1。

我想要的是,让返回的记录按 ID 排序,就像删除之前一样,但我不能在所有查询中添加 ORDER BY id,因为有很多查询,例如这在许多文件中。

请帮帮我, 谢谢你,奥姆里。

最佳答案

要解决您的问题,您可以SET foreign_key_checks=0 然后删除您的表并重新创建它,按顺序插入从 ID 1 到 10 的值,然后再次 SET foreign_key_checks=1 。这很可能会解决您的问题。

但我的建议是始终使用ORDER BY

因为您不能信任作为 SELECT 结果从 MySQL 返回的记录的顺序。默认情况下,MySQL 按照存储结果的顺序返回结果,并将记录存储在发现“漏洞”的任何位置。

这意味着如果您进行批量插入,它“可能”占用顺序内存分配。现在,如果您从该集合中删除一条记录,则会产生一个空洞,该空洞将被后续插入所占用,并且它在 SELECT 中反射(reflect)相同。

关于mysql - sql缓存内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33853276/

相关文章:

sql - MSSQL 到 MySQL API 转换层

sql - 用于将数据库更改从开发数据库同步到生产的工具?

mysql - 使用 Group By 从两个表中减去两列

查询语句。 SP 或函数应计算星期五的下一个日期

MySQL 将 NULL 值更改为除 NULL 之外的最后一个值

sql - 有点复杂的sql行位置

php - 无法安装 phpMyAdmin 错误 : php71w-common conflicts with php-common-5. 4.16-43.el7_4.1.x86_64

mysql - 提高mysql导入速度

php - 显示 sql 查询的多个结果

c# - 选择最多的列表项