php - 在 MySQL 和 php 中使用文本和整数以及应用内常量 "type"列之间的性能差异在哪里?

标签 php mysql performance optimization constants

就我而言,我有一个表,其中存储具有相似信息的记录集合,但每个记录都具有唯一类型列,用于我的应用程序的各个部分。我知道,我知道这是“微优化”,但它是我的应用程序不可或缺的一部分(它将存储许多记录),我希望对其进行优化,而且我也只是好奇,使用起来更快文本类型并选择它,例如
选择...其中类型 = 'some_type' 或者使用 PHP 定义的常量,例如 常量 SOMETYPE = 1; run_query('SELECT ... WHERE type = '.SOMETYPE); ?

最佳答案

字符串比较总是比整数比较慢。通常,所做的是将字符串存储在一个单独的表中,可能称为“standard_types”或任何对存储的“常量”有意义的表。该表有一个唯一的 id 字段,可以被其他表引用。

这样,如果您需要用于报告的字符串,则报告查询可以连接到显示字符串的“类型”表。在我看来,理想情况下,id 值应该反射(reflect)一个标准数字,可以在客户端代码中表示为枚举值或常量;这最大限度地减少了非报告查询对“类型”表的依赖。

有些人可能会反对在数据库和一个或多个应用程序代码库中保持标准 id 值及其含义的列表协调;但另一种方法是协调所有这些的标准字符串(可以以完全不同的方式处理这些字符串值的域)。

关于php - 在 MySQL 和 php 中使用文本和整数以及应用内常量 "type"列之间的性能差异在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50534738/

相关文章:

php - 在php中计算地球上两个坐标之间的行驶距离

mysql - 将 autoincrement id 字段加一

c# - .NET 的 MySql 驱动程序不支持多边形结构,是吗?

python - 为什么 itertools.groupby() 比使用 defaultdict 的等效方法慢得多?

c# - 在为图像处理项目选择 C# 和 C++ 时,我应该考虑哪些因素?

php - 使用 jquery 访问表中的值时出现问题

javascript - 将 JSON 值发送到 PHP

php - MySQL 5 和服务器 sql 模式

PHP在mysql中保存图像导致图像损坏

php - 识别 PHP/MySQL 应用程序 (Drupal) 中性能瓶颈的最佳实践