mysql优化ppt_MySQL优化 | MySlide - 专注PPT分享,追随SlideShare和SpeakerDeck的脚步

本文介绍了MySQL优化的关键原则,包括80/20法则和避免不必要的操作。强调了SELECT和UPDATE操作的重要性,并对比了MyISAM与InnoDB存储引擎的锁机制。还探讨了如何有效利用索引、Profiling工具以及如何优化SQL语句,如避免OFFSET的使用,提升查询性能。
摘要由CSDN通过智能技术生成

1. MySQL 优化 网站基础应用组:汪千 联系我们 : 广州市建中路 50 号多玩大厦 Email:yourname@chinaduo.com Tel: 020 12345678

2. 原则  80/20 法则  避免不必要操作  时空权衡 28/06/18 联系我们 : 广州市建中路

3. 常用 MySQL 操作  INSERT -> C  SELECT -> R  UPDATE -> U  DELETE -> D  R+U/C+D -> 80/20  R/U -> 80/20 28/06/18 联系我们 : 广州市建中路

4. SELECT/UPDATE  锁:读锁( SELECT )写锁( UPDAT E)  查找记录(行)  磁盘 IO ( UPDATE ) 28/06/18 联系我们 : 广州市建中路

5. 锁: MyISAM vs InnoDB  MyISAM :表锁 / 加锁快 / 冲突概率高 / 并发低  InnoDB :行锁 / 加锁慢 / 冲突概率低 / 并发高  如果 SELECT 和 UPDATE 比较平均, InnoDB 性能更好。  InnoDB 在不使用索引时也会锁表。  大量使用 select count(*) 的表不宜用 InnoDB 。 28/06/18 联系我们 : 广州市建中路

6. 查找记录(行)  SELECT * FROM tbl WHERE col1='xxx';  全表扫描。  关系型数据库  表 -> 关系(集合)  行 -> 元素(向量)  ( 学号 , 姓名 , 性别 , 班级 )('1', ' 张三 ', ' 男 ', '2')  字段的值:可以比较大小,包括 'abc%' 28/06/18 联系我们 : 广州市建中路

7. 索引  加速检索  约束( PRIMARY KEY/UNIQUE KEY/FOREIGN KEY ) 28/06/18 联系我们 : 广州市建中路

8. Profiling  SET PROFILING=1;  SHOW PROFILES;  SHOW PROFILE FOR QUERY 1; 28/06/18 联系我们 : 广州市建中路

9. 索引的效果 28/06/18 联系我们 : 广州市建中路

10. MySQL 索引  单列索引  唯一索引 UNIQUE KEY  主键索引 PRIMARY KEY  组合索引 28/06/18 联系我们 : 广州市建中路

11. MySQL 索引  BTREE 28/06/18 联系我们 : 广州市建中路

12. 组合索引  ALTER TABLE tbl ADD INDEX idx1(a, b, c);  实际上建立了 3 个索引 (a) , (a, b) , (a, b, c) 28/06/18 联系我们 : 广州市建中路

13. 组合索引 • 索引生效: • a>5 • a=5 and b > 6 • A=5 and b in (2,3) and c > 5 28/06/18 联系我们 : 广州市建中路

14. 组合索引 • 索引失效: • b>5 • B=6 and c = 7 28/06/18 联系我们 : 广州市建中路

15. 组合索引 28/06/18 联系我们 : 广州市建中路

16. 组合索引 • 索引部分生效: • a>5 and b = 2 • A = 5 and b > 6 and c = 2 • 如果组合索引中Seq_in_index 为n 的列 的条件是开区间 ( a>6;a<100 ), Seq_in_index 大于 n 的列上的索引失效。 28/06/18 联系我们 : 广州市建中路

17. 组合索引 • key_len :索引使用字节数 28/06/18 联系我们 : 广州市建中路

18. 索引失效  不是组合索引的最左前缀。  LIKE 以 '%' 开头。  WHERE col1=123; 列 col1 是 CHAR/VARCHAR/TEXT 类型。  ORDER BY 子句混合使用 ASC 和 DESC 。  ORDER BY 使用的列和 WHERE 的不同。  对不同的键使用 ORDER BY 。  错误使用组合索引。  OFFSET 过大 28/06/18 联系我们 : 广州市建中路

19. 设计索引的原则  出现在 WHERE 子句和 JOIN 子句中的 列要考虑增加索引。 MySQL 实现 JOIN 时会执行内部循环。  列的值越分散,用作索引的效率越高。  字符串使用前缀做索引。  避免过渡索引。 28/06/18 联系我们 : 广州市建中路

20. 索引使用情况  SHOW STATUS LIKE 'Handler_read%';  Handler_read_key 行被索引值读取的次数。  Handler_read_rnd_next 读取下一行的请求数 。 28/06/18 联系我们 : 广州市建中路

21. SQL 语句优化  大批量插入数据  MyISAM  ALTER TABLE t DISABLE KEYS;  -- loading data  ALTER TABLE t ENABLE KEYS;  避免多次更新索引。 28/06/18 联系我们 : 广州市建中路

22. SQL 语句优化  大批量插入数据  InnoDB  SET UNIQUE_CHECKS=0;  SET AUTOCOMMIT=0;  -- loading data  SET AUTOCOMMIT=1;  SET UNIQUE_CHECKS=1;  导入数据按主键排列。 28/06/18 联系我们 : 广州市建中路

23. SQL 语句优化  将多条 INSERT 合并:  INSERT INTO t VALUES (1, 2),(1,3), (1,4),...  避免 GROUP 引发排发 发序发:  SELECT a, COUNT(*) FROM t GROUP BY a ORDER BY NULL; 28/06/18 联系我们 : 广州市建中路

24. SQL 语句优化 • 让 ORDER BY LIMIT 使用索引 KEY(A,B) 使用索引 ORDER BY A A=5 ORDER BY B ORDER BY A DESC, B DESC A > 5 ORDER BY A 28/06/18 联系我们 : 广州市建中路

25. SQL 语句优化 • 让 ORDER BY 使用索引 KEY(A,B) 不使用索引 ORDER BY B A>5 ORDER BY B ORDER BY A ASC, B DESC 28/06/18 联系我们 : 广州市建中路

26. SQL 优化 • 慎用 OFFSET SELECT * FROM t LIMIT 10, 20; SELECT * FROM t LIMIT 20 OFFSET 10; SELECT * From `comment3_record` as c ORDER BY `created` DESC LIMIT N, M 28/06/18 联系我们 : 广州市建中路

27. OFFSET 有害 28/06/18 联系我们 : 广州市建中路

28. OFFSET 替代方案 28/06/18 联系我们 : 广州市建中路

29. MySQL query cache  Show variables like '%query_cache %';  Show status like 'Qcache%'; 28/06/18 联系我们 : 广州市建中路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值