-2

有人能说出 SQL 与 PHP 或相反的速度差异的平均百分比是多少。“速度差异”是指在处理数据的过程中。

我必须管理一个拥有庞大数据库的网站,这是我第一次处理这样的庞大数据库。如果比较的话,我对 PHP 的了解比我的 SQL 知识好十倍。出于这个原因,我一直在处理我的 PHP 脚本中的数据。

例如,我决定使用一个类来存储“图片”表中的图片数据。使用 PDO 和 fetchMode FETCH_CLASS,我可以操作从构造函数获取的数据。一个字段是字符串类型的图片大小,如“widthxheight”。在我的构造函数中,我使用拆分方法将两个属性存储在单独的变量中。由于有很多行,我想知道这种拆分是否最好直接从 SQL 代码的 fetch 语句中执行。

假设我有超过 10k 行,这种改变会有效吗?或者我可以为此目的坚持使用 PHP 吗?

4

3 回答 3

2

我认为在你的情况下,这将是一个巨大的差异:

您选择 N 行。您在每一行中更改一个值。这将导致 N 个更新查询可能包含 N 个事务。

如果定义一个更新查询,则可以在一个语句和一个事务中更新 N 行。

那会更快。

于 2013-04-23T18:37:57.600 回答
1

这里没有硬性规定。有些操作在 SQL 中会快很多,有些在 PHP 中会更快,而且速度差异会很大。

无论哪种方式,您描述的场景都不应该有很大的不同,因此您应该以任何方式来实现最易理解和可维护的代码。(可能在 PHP 中,就像您现在所做的那样。)

然而,宽度和高度存储在数据库中的方式是可怕和错误的。如果这是您必须处理的数据库设计的特征,那么预计会解决一些问题。

于 2013-04-23T18:53:43.670 回答
0

我怀疑是否会有足够的差异。但是要知道,在 sql 中,这将是几个函数调用来复制拆分功能(在该分隔符和下一个分隔符实例之间找到第 N 个分隔符和子字符串),因为 sql 没有拆分函数并且不支持多个值一列。并且必须为每一列完成。如果值是逗号分隔的,您可以使用 find_in_set,但仍然可以调用多个函数。

于 2013-04-23T18:40:41.430 回答