我试图优化一个MySQL查询来加速Drupal视图。

这些表是节点,term_node和term_data。节点有大约500k行,term_node大约800k,term_data大约300k。

查询下方:

SELECT SQL_NO_CACHE DISTINCT(node.nid) AS nid

FROM drupal_node node

LEFT JOIN drupal_term_node term_node ON node.vid = term_node.vid

LEFT JOIN drupal_term_data term_data ON term_node.tid = term_data.tid

WHERE (node.status = 1) AND (node.type in ('foto_foto'))

AND (

(UPPER(term_data.name) LIKE UPPER('%Hanaa%') OR

UPPER(term_data.name) LIKE UPPER('%Bouchaib%')))

GROUP BY nid

LIMIT 0, 10;此查询需要大约11秒才能显示结果。

参与连接的所有列都被编入索引,以及term_data.name。

node.vid,term_node.vid,term_node.tid和term_data.tid是int(10),term_data.name是varchar(255)。

奇怪的是,运行这样的组合查询:

SELECT SQL_NO_CACHE DISTINCT(term_node.tid)

FROM drupal_term_data term_data

LEFT JOIN drupal_term_node term_node ON term_node.tid = term_data.tid

WHERE ((UPPER(term_data.name) LIKE UPPER('%Hanaa%')

OR UPPER(term_data.name) LIKE UPPER('%Bouchaib%')))

group by term_node.tid和

SELECT SQL_NO_CACHE DISTINCT(node.nid) AS nid

FROM drupal_node node

LEFT JOIN drupal_term_node term_node ON node.vid = term_node.vid

WHERE (node.status = 1) AND (node.type in ('foto_foto'))

GROUP BY nid第一次是0.23s,第二次是0.12s。所以我期望主查询至少应该在0.5s以下运行。这就像优化器没有在查询上运行一样。

我已经在涉及的表上运行了ANALYZE和OPTIMIZE,下面是EXPLAIN EXTENDED的结果。

*************************** 1. row ***************************

id: 1

select_type: SIMPLE

table: node

type: range

possible_keys: vid,node_status_type,node_type

key: node_status_type

key_len: 102

ref: NULL

rows: 496217

filtered: 100.00

Extra: Using where

*************************** 2. row ***************************

id: 1

select_type: SIMPLE

table: term_node

type: ref

possible_keys: PRIMARY,vid

key: vid

key_len: 4

ref: drupal_foto.node.vid

rows: 7

filtered: 100.00

Extra: Using where

*************************** 3. row ***************************

id: 1

select_type: SIMPLE

table: term_data

type: eq_ref

possible_keys: PRIMARY

key: PRIMARY

key_len: 4

ref: drupal_foto.term_node.tid

rows: 1

filtered: 100.00

Extra: Using where

3 rows in set, 1 warning (0.00 sec)该警告仅提供代码为1003的备注级别警告。

drupal mysql_Drupal MySQL查询优化相关推荐

  1. MySQL高级-索引是个什么东西?explain到底怎么用-MySQL查询优化大全

    目录 一.引出问题-MySQL的查询优化: 二.性能下降的原因: 三.索引到底是什么?怎么用? 1.索引操作 查看索引: 删除索引: 创建索引: 说明: 索引命名规范: 2.索引优势: 3.索引劣势: ...

  2. MySQL查询优化-explain

    2019独角兽企业重金招聘Python工程师标准>>> 一.MySQL 查询优化器是如何工作的         MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索 ...

  3. MySQL查询优化之explain的深入解析

    在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.expla ...

  4. mysql查询优化explain命令详解

    转载自 mysql查询优化explain命令详解 mysql查询优化的方法有很多种,explain是工作当中用的比较多的一种检查方式.explain翻译即解释,就是看mysql语句的查询解释计划,从解 ...

  5. mysql优化php面试_php面试专题---18、MySQL查询优化考点

    php面试专题---18.MySQL查询优化考点 一.总结 一句话总结: 慢查询:查找分析查询速度慢的原因 数据访问:优化查询过程中的数据访问 长难句:优化长难的查询语句 特定类型:优化特定类型的查询 ...

  6. MySQL查询优化之索引

    MySQL查询优化之索引 什么是索引 索引简单来说就类似字典,想想我们小时候在中华字典怎么查某个字.索引的作用就是快速找出在某个列中有一特定值的行. 例如:有一张user表,其中有200万条记录,记录 ...

  7. mysql查询优化之三:查询优化器提示(hint)

    目录: <MySQL中的两种临时表>--强制使用临时表 SQL_BUFFER_RESULT <MySQL 多表关联更新及删除> <mysql查询优化之三:查询优化器提示( ...

  8. MySql查询优化性能调优,sql性能自测方法,及Mysql索引介绍

    MySql查询优化性能调优,sql性能自测方法,及Mysql索引介绍 前言 一.普通优化加索引(适用于where条件后一个查询条件) 二.组合查询加索引(适用于where条件后多个查询条件) 三.My ...

  9. 谈谈MySQL查询优化

    1.硬件优化 一般来讲,硬件的优化是成本最高效果最差的,服务器性能对数据库的读写能力的影响尤其体现在磁盘I/O上.mysql数据库频繁的CURD操作是十分吃磁盘I/O的,一般可以认为磁盘I/O是硬件方 ...

最新文章

  1. android地图定位
  2. 简单删除我的电脑里的wps云文档图标
  3. x window的奥秘
  4. 3rd_party/flatbuffers/tmp/flatc: No such file or directory
  5. Gartner:2020年企业中无“云”战略将极为罕见
  6. mysql实验学生表_数据库实验(学生信息表)
  7. linux下ip命令用法
  8. Laravel 中使用Goutte + GuzzleHttp 组件设置 headers无效的原因探究以及解决方案
  9. linux 日志面试题,Linux运维 | 面试题
  10. 最新如何解决git 输入github时每次都要输入用户名和密码问题
  11. 计算机网络第七版1-3
  12. 查看linux系统日志某一天,linux系统日志查看
  13. Sprintboot 解压Zip文件,ZipEntry的zipEntry.getSize()为-1的问题
  14. android app消息推送,如何进行app消息推送(push)?
  15. 运动模糊(Montion blur)
  16. linux系统外接硬盘_电脑主硬盘linux系统,外接硬盘win7系统.如何启动外接硬盘的win7系统?...
  17. 耐威迪综合布线可视化管理软件与Visio在数据中心应用中的区别
  18. 用数组实现求平均数小案例
  19. 【图像融合】基于非下采样剪切波变换(NSST)实现红外图像和可见光图像融合matlab代码
  20. CEO是世界上最孤独的人

热门文章

  1. java替换list中元素,Java 实例 - List 元素替换
  2. Threejs性能监视和可视化控制
  3. 两个结构体ifconf和ifreq
  4. 安装配置树莓派的最佳工具——NOOBS
  5. windows下手动配置ipv6地址
  6. “无法解析外部符号 __security_cookie”问题解决
  7. Microsoft Windows CE .NET 中的中断体系结构
  8. python从小白到大牛pdf 下载 资源共享_Kotlin从小白到大牛 (关东升著) 中文pdf高清版[12MB]...
  9. 考公专业科目计算机,2017国考中国证监会专业科目考试大纲(计算机类)
  10. android 解析错误 真机,AndroidStudio使用真机调试时出的一些bug