我正在尝试在mysql中使用explain命令。我正在尝试解决此删除查询的性能问题:
DELETE FROM boost_cache_relationships
WHERE base_dir = 'cache/normal/www.dane101.com'
AND page_callback = 'node'
AND page_type = 'story'
AND page_id = '2891';
此查询是SHOW FULL PROCESSLIST命令的输出。
我理解EXPLAIN不能用于删除,所以我复制它并用SELECT替换DELETE来提供以下内容:
explain select
FROM boost_cache_relationships
WHERE base_dir = 'cache/normal/www.dane101.com'
AND page_callback = 'node'
AND page_type = 'story'
AND page_id = '2891';
当我按Enter键时,mysql给出了一条错误消息,指出这是无效的SQL:
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在'FROM boost_cache_relationships WHERE base_dir =附近使用的语法 'cache / normal / www.dane101.com'A'在第1行
我做错了什么?
答案 0 :(得分:6)
您需要指定字段列表:
select * FROM boost_cache_relationships WHERE base_dir = 'cache/normal/www.dane101.com' AND page_callback = 'node' AND page_type = 'story' AND page_id = '2891';
答案 1 :(得分:4)
选择查询需要选择列名。删除查询没有。
SELECT *
FROM boost_cache_relationships
WHERE base_dir = 'cache/normal/www.dane101.com'
AND page_callback = 'node'
AND page_type = 'story'
AND page_id = '2891';
答案 2 :(得分:3)
在您的选择中尝试选择一些列:
SELECT *...