- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自 mysql-slow-log 的日志:
查询时间:11.632750 锁定时间:1.317329 已发送行数:851 已检查行数:1649439
select record.name, dept.name, school.name FROM record
inner join record as r2 ON
record.number=r2.number AND record.year=r2.year
AND r2.dept_id=12345 AND r2.type=1 AND r2.year=2015
LEFT JOIN school ON record.school_id=school.id
LEFT JOIN dept ON record.dept_id=dept.id
表record
中有大约80万行,但是查询为什么检查超过100万行?
我已经为表dept
和表school
设置了索引,但我不确定如何为内连接部分创建索引。我读了上一个问题( Rows_sent: 12 Rows_examined: 549024 - how to optimize mySQL query? ),但仍然无法找到我的极慢查询的解决方案。
编辑(为什么内部联接):
我想选择 dept_id=12345 的同一个人的所有行。结果将是黄色和橙色行,如示例图片所示。这就是我使用内连接的原因。
最佳答案
为什么是 1.6M,而不是 0.8M?看来是
对于此统计,两个表是同一个表(“自连接”)是无关紧要的。
如何优化?如果您提供了SHOW CREATE TABLE record
,那么回答会更容易,但这是一个猜测。
添加两个索引:
INDEX(dept_id, year, type) -- the fields can be in any order
INDEX(number, year) -- the fields can be in either order
第一个可以非常有效地让您进入r2
。第二个使得 JOIN
非常高效。
select record.name, dept.name, school.name FROM record
存在问题 - 您尚未加入表 dept
或 学校
。
关于mysql - Rows_sent : 851 Rows_examined: 1649439, 查询非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691706/
来自 mysql-slow-log 的日志: 查询时间:11.632750 锁定时间:1.317329 已发送行数:851 已检查行数:1649439 select record.name, dept
我正在尝试简单地“合并”12 个表的所有行。所有表加起来有 115 行。但是,如果我运行下面的查询,则在使用“explain”时会得到以下内容,并且在设置为“log-queries-not-using
我有一个数据库,其中列出了相当不错的服务器(四核至强 2.0Ghz、16GB RAM、SSD 驱动器)。该数据库有大约 180,000 个列表。服务器上还没有流量,我只是用大量列表对其进行测试,以确保
我是一名优秀的程序员,十分优秀!