mysql - 提高 mySQL 61 表连接限制

标签 mysql drupal view limit my.cnf

我有一个 Drupal 6 应用程序,它需要的连接数量超出了 mySQL 限制 允许的 61 个表连接 数量。我知道这个数字过多,但它每天只运行一次,并且结果会被缓存以供进一步引用。

是否有任何可能有帮助的 mySQL 配置参数,或者是否有任何其他方法无法更改收集数据背后的逻辑?

最佳答案

我的方法是将庞大的查询拆分为更小、更简单的查询,并使用临时表来存储中间步骤。我经常使用这种方法,它对我帮助很大(有时创建一些临时表比在一个大查询中连接所有表更快)。

类似这样的事情:

drop table if exists temp_step01;
create temporary table temp_step01
    select t1.*, t2.someField
    from table1 as t1 inner join table2 as t2 on t1.id = t2.table1_id;
-- Add the appropriate indexes to optimize the subsequent queries
alter table temp_step01
    add index idx_1 (field1);
-- Create all the temp tables that you need, and finally show the results
select sXX.*
from temp_stepXX as sXX;

记住:临时表仅对创建它们的连接可见。如果您需要使结果对其他连接可见,则需要创建一个“真实”表(当然,这只有在过程的最后一步才有值(value))。

关于mysql - 提高 mySQL 61 表连接限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157840/

相关文章:

javascript - 从函数传递到函数名称的字符串变量不起作用

ajax - PF 自动完成完成方法未被触发

sql-server - 可以使用不同的访问权限进行跨模态视图查询吗?

mysql - 一次 2 个 SQL 查询

mysql - 仅获取单个 id 的记录,不获取任何其他 id 的记录

mysql - 如果 BEFORE 触发器产生错误,UPDATE 是否仍会执行?

php - 带有 SELECT OR 的 mysql PDO,错误! : SQLSTATE[HY093]

php - 在外部 PHP 文件中调用 Drupal 函数

javascript - Drupal 7 中的 CKEditor 缺少/不正确的基本路径

swift - 侧面菜单 Controller