gpt4 book ai didi

php - SQL 搜索查询在不同服务器上的处理方式不同

转载 作者:行者123 更新时间:2023-11-30 22:57:46 26 4
gpt4 key购买 nike

我有一个非常奇怪的问题,我现在好几天都无法弄清楚。我做了很多测试,所以现在排除了许多可能的根本原因,这为真正“奇特”的可能性留下了空间,我需要一些新想法的帮助,因为我现在被困住了。

一些背景:网站源文件和数据库(两者相同)安装在两台服务器 Wamp 和 Lamp 上。

我面临的问题是与搜索结果相关的网站查询。搜索查询是使用 LEFT JOIN 从两个 SQL DB 表构建的。连接由条目 ID 参数完成。这是其中一个搜索查询的示例:

$tables = $tblprefix."vehicles AS v
LEFT JOIN ".$tblprefix."vehicles_car AS vc on v.id = vc.v_id LEFT JOIN ".$tblprefix."models AS model on v.model = model.id";
}
else {
$fields = " v.*, vc.exterior_color";

搜索查询本身是正确的,并且在两台服务器上都能完美运行,所以这只是一个例子。

不同的场景——我从 CSV 文件上传名为“vehicles”的主数据库表的条目。在此上传之后,执行搜索时,结果显示所有上传的条目,即所有作品都是正确的。我厌倦了添加超过 27,000 行,并且所有显示都没有出现故障。然后我继续并开始上传第二个表“vehicles_car”的条目。当插入大约 200-215 个条目时,所有作品都是正确的。

现在是问题 - 当我在第二个表中插入超过 210-220 个条目时,搜索查询突然显示“无结果”,但仅限于安装在 Lamp 服务器上的网站。无论两个表中加载了多少条目,Wamp 上的网站都可以正常工作。出于某种原因,只有 Lamp 服务器上的查询不起作用,并且只有当第二个表有超过 200 多个条目时。

注意:显示“无结果”时表格条目的数量会有所不同 - 它适用于 215 个条目,然后我再插入一个 - 显示“无结果”,然后我删除最后一个条目并继续显示“没有结果”。再删除一个——“无结果”,继续从第二个表中删除更多条目,它突然再次显示正确的搜索结果。真正不一致的行为。

最奇怪的是,当查询显示“无结果”并将数据库导入 Wamp 服务器时,我从 Lamp 服务器导出了整个数据库。它在那里工作!!!

所以任何想法 - 可能是什么问题(我怀疑它是数据库中的东西)可能导致查询在一个服务器上工作而不在另一个服务器上工作(并且仅当存在超过一定数量的行时在第二个连接表中)??

灯服务器 - SQL 5.5.32 InnoDB,phpMyAdmin - 2.8.0.1

Wamp 服务器 - SQL 5.6.14 InnoDB,phpMyAdmin - 4.0.9

任何新鲜的想法都将不胜感激,因为我真的被困住了!!!

谢谢!

更新:我只是清空了所有带有特殊字符的列,并将它们替换为两个表第一行的单元格值(仅在可能的情况下 - 例如,ID 自动递增单元格未更改)。在 Lamp 服务器上观察到相同的行为,不同之处在于现在 SQL 查询在第二个表中添加的不同行数上显示“无结果”。首先尝试添加 2037 行 - “无结果”。删除最后一行 - “无结果”,再删除一个,一切正常(在 2035 行)。再次添加同一行 (2036) 一切正常,添加新行 (2037) - 一切正常。继续使用 INSERT 查询添加行,一切正常,现在在第 2039 行,搜索结果工作正常。这种不一致的行为从何而来? LAMP 服务器可以处理的 Left Join 查询数量的“可变”限制,因为这是共享托管环境?还能是什么呢?

UPDATE2:我现在倾向于认为这与托管服务提供商服务有关,而不是查询或数据库本身。继续调查。

最佳答案

好的,所以在花了两周时间研究 SQL 查询并插入托管支持以调查他们这边的问题后,结果发现 max_join_size 的限制设置为 7,000,000,最终只会返回大约 2000 多条记录.如果记录超过此限制,服务器将不会返回任何结果。不错。

事实证明,曾经很棒的托管服务现在正成为 * 的真正痛点。

关于php - SQL 搜索查询在不同服务器上的处理方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25511746/

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