sql - 存储为数字而不是文本对数据库性能有何改进?

标签 sql database performance

假设我有“Win”、“Lose”、“Incomplete”、“Forfeit”等文本。我可以直接将文本存储在数据库中。相反,如果使用诸如 0 = Win、1 = Lose 等数字,我会在数据库性能方面获得实质性改进吗?特别是在字段是我的 WHERE 子句的一部分的查询上

最佳答案

在 CPU 级别,比较两个固定大小的整数只需要一条指令,而比较可变长度的字符串通常需要遍历每个字符。因此,对于非常大的数据集,使用整数应该会显着提高性能。

此外,固定大小的整数通常会占用更少的空间,并允许数据库引擎执行基于随机搜索的更快算法。

然而,大多数数据库系统都有一个 enum 类型,它适用于像您这样的情况 - 在查询中,您可以将字段值与一组固定的文字进行比较,同时它在内部存储为整数。

关于sql - 存储为数字而不是文本对数据库性能有何改进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098546/

相关文章:

sql - 你怎么称呼你的美国国家表?

Mysql查询获取表名存储在另一个表中的每个表的总和

mysql - 如何显示MySQL中的表?一直显示空集

mysql - 例行将Excel数据导入MySQL数据库

php - 提高CPU密集型PHP脚本的性能

perl - 如何避免重新处理已经在我的 Perl 脚本中处理过的输入?

python - 当授予监控帐户权限时,有没有办法使用 python 查询计费使用情况?

php - MySQL 天数减法在月底不起作用

php - 无法将数据值存储到数据库中

java - 我应该选择哪种方法 fromValue() 函数枚举