【发布时间】:2015-03-18 09:19:07
【问题描述】:
我有一个数据库和一个包含大约 100,000 个键/值对记录的字符串,我想创建一个函数来查找值。
考虑性能(页面加载时间)和崩溃安全性,使用字符串还是数据库更好?这是我的两个代码示例:
1.
echo find("Mohammad");
function find($value){
$sql = mysql_query("SELECT * FROM `table` WHERE `name`='$value' LIMIT 1");
$count = mysql_num_rows($sql);
if($count > 0){
$row = mysql_fetch_array($sql);
return $row["family"];
} else {
return 'NULL';
}
}
2.
$string = "Ali:Golam,Mohammad:Offer,Reza:Now,Saber:Yes";
echo find($string,"Mohammad");
function find($string,$value){
$array = explode(",",$string);
foreach($array as $into) {
$new = explode(":",$into);
if($new[0] == $value) {
return $new[1];
break;
}
}
}
【问题讨论】:
-
两者都不是更好;他们是不同的
-
如果你要求更快,我投票给第二个...
-
但是内存中包含 100,000 个名称的字符串将很难更改(尤其是在代码中),并且还会占用大量 PHP 内存......所以虽然看起来更快,它会在系统的其他地方引起很多问题....如果您需要更改字符串中名称的详细信息,或添加新名称/删除旧名称,那么您应该使用数据库
-
但是停止使用旧的、已弃用的 MySQL 扩展,并开始使用 MySQLi 或 PDO 以及准备好的语句/绑定变量
-
我想,你需要在这里提出你的问题:codereview.stackexchange.com