我面临一个奇怪的问题。我有一个API,每秒几次调用一些非常拥挤的表(至少对我们的标准, 15M 和 42M )。这些来电是selects
,updates
和inserts
,而且非常非常快;即使我们可能只在一次API调用中调用30次更新,整个调用也会在少于0.05秒中完成。
然而,当我想通过phpMyAdmin
检查其中一些行时,使用API正在使用的完全相同的查询,结果是 Apache服务器崩溃,由于超时。
更多的是X文件,如果我通过mysql
cli发出相同的查询,它就不会使Apache
崩溃(显然), 但数据服务器。这是一个相当短暂的停电(不到一秒钟),但它甚至会让我脱离命令行界面。
类似的查询如下所示:
SELECT *
FROM one_of_the_tables
WHERE this_field != ''
AND CHAR_LENGTH(this_field) < 8
LIMIT 50
第一次失败后,我开始添加限制。我知道CHAR_LENGTH
并不是最快的,但我的意思是,50行并不是那么多。