mysql 三个表索引优化案例
来源:互联网 发布:it设备维修流程图 编辑:程序博客网 时间:2024/06/05 10:15
+----+-------------+-------+------+---------------+------+---------+------+------+----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+----------------------------------------------------+
| 1 | SIMPLE | class | ALL | NULL | NULL | NULL | NULL | 20 | NULL |
| 1 | SIMPLE | book | ALL | NULL | NULL | NULL | NULL | 20 | Using where; Using join buffer (Block Nested Loop) |
| 1 | SIMPLE | phone | ALL | NULL | NULL | NULL | NULL | 20 | Using where; Using join buffer (Block Nested Loop) |
+----+-------------+-------+------+---------------+------+---------+------+------+----------------------------------------------------+
#依照两表优化原则建立索引
CREATE INDEX Y ON book(card);
CREATE INDEX Z ON phone(card);
mysql> EXPLAIN SELECT * FROM class LEFT JOIN book ON class.card = book.card LEFT JOIN phone ON book.card = phone.card;
+----+-------------+-------+------+---------------+------+---------+-----------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+-----------------+------+-------------+
| 1 | SIMPLE | class | ALL | NULL | NULL | NULL | NULL | 20 | NULL |
| 1 | SIMPLE | book | ref | Y | Y | 4 | mydb.class.card | 1 | Using index |
| 1 | SIMPLE | phone | ref | Z | Z | 4 | mydb.book.card | 1 | Using index |
+----+-------------+-------+------+---------------+------+---------+-----------------+------+-------------+
#总结
join语句的优化
1)尽量减少join语句中NestedLoop的循环总次数;“永远用小的结果集驱动大的结果集”。
2)优先优化NestedLoop的内层循环;
3)保证join语句中被驱动表上join条件字段已经被索引;
4)当无法保证被驱动表的join条件字段被索引且内存资源充足的情况下,不要太吝惜join buffer的设置。
- mysql 三个表索引优化案例
- mysql 单表索引优化案例
- mysql 两个表索引优化案例
- mysql 索引优化案例(索引失效)
- MySQL的索引单表优化案例分析
- Mysql性能优化案例-覆盖索引分享
- 索引案例一:单表优化案例
- Mysql性能优化案例研究 - 覆盖索引和SQL_NO_CACHE
- mysql索引测试案例
- MySql优化--索引优化
- MySQL SQL 优化案例:JOIN派生表
- mysql优化案例分析
- mysql 查询优化案例
- mysql 数据库优化案例
- MYSQL优化案例
- MySQL优化案例
- Mysql性能优化案例
- mysql创建索引小案例
- 基于xilinx FPGA验证ASIC可能遇到的timing问题
- 排序算法——希尔排序
- BZOJ 3529 莫比乌斯反演 + 离线 + 树状数组动态维护前缀和
- Django1.11下后台中文的显示
- 跳表SkipList
- mysql 三个表索引优化案例
- 年度最佳50句丧格言,让你看完怀疑人生
- LeetCode 119. Pascal's Triangle II
- angular4、angular4.0从入门到实战 打造股票管理网站 1.子路由 2. 路由传参三种方式 3. 路由守卫
- 获得多个字段分组语句
- uva156(标准化+map)反片语
- 秋招笔记
- Android Study 之聊聊关于图片压缩那点事儿
- css3魔方测试