我有一个包含大量记录的数据库。更具体地说,我有一个包含多个子查询的查询,这些子查询获取记录并显示在前端。
如果字段包含NULL
,我想显示一些默认值。
我希望找出以下哪种方法可以提供更好的性能。我现在正在使用MySQL方法,但这需要很多时间。
MySQL 方法
SELECT A.columnA,
IFNULL (( SELECT B.columnB FROM tableB B), 'default-value') AS columnB,
IFNULL (( SELECT C.columnC FROM tableC C), 'default-value') AS columnC,
IFNULL (( SELECT D.columnD FROM tableD D), 'default-value') AS columnD
FROM tableA A
WHERE 1=1
LIMIT 20
ORDER BY A.columnA ASC
PHP方法
foreach($recordsFromDB as $record) {
if(is_null($record->columnB)) {
echo 'default-value';
} else {
echo $record->columnA;
}
}
在编程中没有完美的方法,因此找到了很多解决方案! 所以让我们从这一点开始,在我看来,检查空值应该使用 PHP,然后可以传递您获得的句柄以进行进一步的 MySQL 处理!显然,仅使用 MySQL 处理所有这些查询量将很困难。我的建议是,尝试检查空值并在 php 中替换它们,如果您必须处理在数据库中检索/获取或插入值,请点击 MySQL