gpt4 book ai didi

mysql - 隐藏MySQL数据库表中的INSERT顺序

转载 作者:行者123 更新时间:2023-11-29 01:26:10 30 4
gpt4 key购买 nike

根据定义,MySQL 表中的行没有可靠的“自然”顺序,除非我添加递增 ID、时间戳等。但是,当运行不带 ORDER 的 SELECT 时,我通常可以重建添加行 (INSERT) 的顺序。

出于隐私原因,我正在尝试摆脱这个“内部”命令。如果我有 Excel 工作表,我会将新行插入到另一个随机选择的行之前。但是 MySQL 中没有 INSERT AFTER...

有什么想法吗?

背景

我需要隐藏两行(“同时”插入同一个表中,即使在一个事务中)属于一起。并且一个人(邪恶的员工,黑客攻击服务器的人)不应该能够重建这两个条目的关系。

已考虑的解决方案

  • 使用 INSERT SELECT -> 重新创建数据库的副本是行不通的,因为表很大,有很多插入,并且锁定表进行重写会起作用成为一个问题。
  • 添加一对时删除并重新插入另一行 -> 在一个大表中,许多行将保持原始顺序,机会缺乏可靠性:(

最佳答案

默认存储引擎 InnoDB 始终按主键组织表。如果您在没有 ORDER BY 的情况下进行查询,MySQL 将按照其用于访问表的索引顺序返回行(主键顺序或使用的任何辅助索引的顺序)。

这可能是使用 UUID 作为主键的好机会。

UUID 似乎是一个随机的唯一数字,尽管它确实具有某种结构。推断哪些行按时间顺序彼此靠近需要 reading some documentation (这意味着几乎所有潜在的邪恶员工对此一无所知)。

关于mysql - 隐藏MySQL数据库表中的INSERT顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49499875/

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