mysql - 在 MySQL : string vs float vs 2 ids 中检索唯一记录的最快方法

标签 mysql string performance floating-point integer

我需要检查(可能)大型数据库(数百万条记录)中的特定记录是否存在。

我可以选择用以下方式唯一标识记录:

  • 2 个整数(例如:231321 和 312309)
  • 1 个 float (两个整数的组合。示例:231321.312309)
  • 1 个字符串(两个整数的组合。示例:'231321@312309')

这三个选项中的一个是否比其他选项更好?

谢谢!

最佳答案

使用 2 个整数。

理由:

  • 根据实际整数范围,您可能无法存储 2 个整数 在一个没有精度损失的 float 中。
  • 字符串只是浪费空间。
  • 对于 float 和字符串,如果需要的话,您将无法对第二个整数进行索引(因此无法有效地搜索)。
  • 此外,关于 atomicity 也存在哲学争论。违反它实际上违反了第一范式。

关于mysql - 在 MySQL : string vs float vs 2 ids 中检索唯一记录的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9147527/

相关文章:

mysql - 从mysql中选择随机记录

c - 如何将文件的行保存在字符串表中?

c# - .NET 中计算数组平均值的算法的性能问题

php - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'name' cannot be null

MYSQL - 使用 IN 子句检索金额

java - NumberFormat 解析货币值失败

python - 如何将回溯对象( sys.exc_info()[2] ,与 sys.exc_traceback 相同)作为字符串获取?

python - 创建大量类实例有什么缺点吗?

Erlang/OTP - 计时应用程序

mysql - 如何通过每天和每周定义的层次结构汇总事件类型(使用 SQL 或 ETL)