【发布时间】:2016-05-11 10:00:09
【问题描述】:
我有 2 个表 - info 和 cmets。 info 有 270,000 行,而 cmets 只有 100 行。
我运行一个 php 脚本,从数据库中选择数据并将其编码为 json 格式。 PHP 脚本还将响应限制为仅前 10 行,并且 PHP 文件 Info.php 和 Comments.php 完全相同,只是名称不同。
那么,当它只打印前 10 行时,为什么 270,000 行的表比 100 行的表需要更多的时间来加载? cmets 需要 1 秒,而 info 需要 10 秒。
这是PHP查询代码,很简单:
Info.php:$query = "SELECT * FROM info ORDER BY id LIMIT 10;";
comments.php:$query = "SELECT * FROM comments ORDER BY id LIMIT 10;";
出于测试目的,它们都具有相同的列和相同的数据,唯一的区别是行数。所以我用 PHP 测试了时间:
Info.php:
select from database time: 0.6090 seconds
time taken to decode JSON: 6.4736 seconds
而 Comments.php 结果:
select from database time: 0.7309 seconds
time taken to decode JSON: 1.7178 seconds
谢谢
【问题讨论】:
-
在您的数据库查询之前和之后创建一个计时器..然后在 json 编码之前和之后..是数据库还是编码占用了时间?每个表有多少列?
-
如果您认为应该归咎于数据库,请对查询进行解释并发布结果
-
@Dale 出于测试目的,它们都具有相同的列和相同的数据,唯一的区别是行数。所以我用 PHP 和 Info.php 结果测试了时间:从数据库中选择时间:0.6090 秒解码 JSON 所需的时间:6.4736 秒而 Comments.php 结果:从数据库中选择时间:0.7309 秒解码 JSON 所需的时间:1.7178 秒跨度>
-
为什么 JSON 会在不同的时间解码相同的数据?
-
@jokesonhiltionhotel 因为要解码的纯数据量