Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL评测不适用于嵌套函数_Mysql_Performance_Profiling - Fatal编程技术网

MySQL评测不适用于嵌套函数

MySQL评测不适用于嵌套函数,mysql,performance,profiling,Mysql,Performance,Profiling,我尝试在MySQL中分析一些查询,版本: mysql Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (x86_64) using readline 6.2 从标准方法开始 SET profiling = 1; …和一个示例查询: SELECT mer.name FROM merchants mer JOIN ( SELECT mem.id, mem.merchant_id FROM member

我尝试在MySQL中分析一些查询,版本:

mysql  Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (x86_64) using readline 6.2
从标准方法开始

SET profiling = 1;
…和一个示例查询:

SELECT  mer.name
FROM    merchants mer
JOIN (
        SELECT  mem.id, mem.merchant_id
        FROM    members mem
        WHERE   is_test_account(mem.email) = false # THIS CAUSES PROBLEMS!
     ) subquery
ON mer.id = subquery.merchant_id
GROUP BY mer.id;
当我在嵌套查询中使用任何自定义函数时,就会出现问题,如上面用
is\u test\u account
所示。按显示方式执行查询可防止其出现在配置文件列表中,
SHOW profiles
从内部查询的
WHERE
条件中删除该函数修复了问题

作为参考,函数
是\u test\u account
如下所示:

DELIMITER //

CREATE FUNCTION is_test_account(p_email_addr VARCHAR(255))
    RETURNS BOOLEAN
    DETERMINISTIC
BEGIN
    RETURN (p_email_addr like '%demo.com'
        OR  p_email_addr like '%example.com'
           );
END//
为什么在嵌套查询中使用该函数会阻止MySQL评测工作


任何解决问题的见解都将不胜感激。谢谢。

像“%”
不使用索引。我的问题与索引无关。分析的目标是查看查询在哪里花费了大部分时间。