gpt4 book ai didi

php - SQL SELECT 和 PHP 检索速度 INT vs TINYINT vs VARCHAR vs ENUM?

转载 作者:行者123 更新时间:2023-11-28 23:52:59 24 4
gpt4 key购买 nike

我正在创建一个表然后显示记录,这让我感到奇怪。

如果我存储“饮食习惯”(素食者、非素食者和蛋者),如果我将“饮食习惯”存储为int tinyintvarcharenum 类型。

使用 int [方法 1]

// to select records  
SELECT * FROM table WHERE eating_habits = 2 AND ...;

//for display in php
foreach($all_records AS $key => $val) {
if($val['eating_habits'] == 1)
echo 'Vegetarian';
elseif($val['eating_habits'] == 2)
echo 'Non-Vegetarian';
else
echo 'Eggetarian';
}

比使用 tinyint [方法 2]

快/慢
 // script will same as above aproach 1
....

比 - 使用 int 或 tinyint 和 join****[方法 3]

更快/更慢
// to select records  
SELECT *.t1 FROM table1 as t1 join table2 as t2 on ti.eat_habit_id=t2.eating_habits
WHERE t2.eating_habits = 2 AND ...;
//for display in php
foreach($all_records AS $key => $val) {
echo $val['eating_habits'];
}

比使用 varchar [方法 4]

快/慢
// to select records  
SELECT * FROM table WHERE eating_habits = 'Non-Vegetarian' AND ...;

//for display in php
foreach($all_records AS $key => $val) {
echo $val['eating_habits'];
}

比使用enum [方法 5]

快/慢
  // script will same as above approach 3
.....

从上面的 5 种方法中,哪种方法可以更快地在 php 页面中搜索、获取和显示记录?

最佳答案

速度差别不大。最大的成本是读取记录。为此,较短的记录通常性能更好。然后你建议的 1 字节 ENUM 是最小的。

ENUM 的缺点是,如果添加新选项,则需要ALTER 表。

同样,1 字节的 TINYINT 比 4 字节的 INT 稍微快一些。

如果您只有几千行,只需将其设为 VARCHAR(..) 即可,不必担心。如果您预计有数亿行,请仔细选择数据类型。

关于php - SQL SELECT 和 PHP 检索速度 INT vs TINYINT vs VARCHAR vs ENUM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32302388/

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