掌门 MySQL 数据库规约落地及优化实战
Posted 掌门技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了掌门 MySQL 数据库规约落地及优化实战相关的知识,希望对你有一定的参考价值。
4+5| 1 | SIMPLE | t1 | range | uni_name | uni_name | 43 | NULL | 1 | Using index condition |
6+71 row in 8mysql> 9| Table | B+ 树的非叶子节点不会存放数据,只存放键值,一个页可以存放更多索引,索引树较矮
B+ 树的查找必须到叶子节点才会命中,查找十分稳定
B+ 树的叶子节点中存放有双向指针构成一种链表结构,范围查询效率非常高效。而数据库的范围查询十分常见
2mysql> 34567+8| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
9+12 3 store used columns from t1, t2 4 5 6 7 8
9
不管是 NLJ 或者是优化后的 BNL 算法,都是从驱动表中筛选数据,与被驱动表进行匹配,有以下特性:
1mysql> 2345 6+7| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
8+9| 1 | SIMPLE | students | ALL | created_at,idx_ref_user_id | NULL | NULL | NULL | 52833786 | Using where |
1mysql> 234(567891mysql> 2345(678 9 1mysql> 23456 7 8 9 1mysql> 23456+7| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
8+9| 1 | PRIMARY | u | range | idx_uptime | idx_uptime | 6 | NULL | 103664 | Using where; Using index |
1mysql> 234567+8| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
9+1mysql> 2 -> 345+6| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
7+8| 1 | SIMPLE | users | ALL | users_mobile_unique | NULL | NULL | NULL | 83319185 | Using where |
9+1mysql> 2 -> 345+6| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
7+8| 1 | SIMPLE | users | const | users_mobile_unique | users_mobile_unique | 62 | const | 1 | NULL |
9+1mysql> 23456 7+8| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
9+date 函数,导致无法通过 created_at 列匹配满足时间要求的数据,通过 1mysql> 23456 7 8+9| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
1mysql> 23456 7 8 9+1mysql> 23456 7 89+1mysql> 23456 7 89将内部查询使用括号包裹,强制其作为一个先导执行的子查询,然后对子查询的最终结果集进行排序返回。由于子查询中会存放所有满足条件的结果,并且进行文件排序,如果满足条件的结果非常大,该方法会消耗较多资源效率较低。(亦可)1mysql> 23456 7 891mysql> 234(5678 9 1mysql> 2 34 5 6 7 8 9 1mysql> 2 34 5 6 7 8 9 1mysql> 23 ss.id,
4 ss.user_id userId,
5 ss.scan_state scanCode,
6 ss.bu,
7 ss.source
89 t_screenshot ss
1mysql> 23 ss.id,
4 ss.user_id userId,
5 ss.scan_state scanCode,
6 ss.bu,
7 ss.source
89 t_screenshot ss
1mysql> 23 ss.student_id 4 ss.pre_seller_id 5 ss.state 67 students_seller ss 89 ss.bu = 1如:上一次循环取到的students_seller表的最大id为102378346
2mysql> 3 -> 4 ss.student_id 5 ss.pre_seller_id 6 ss.state 78 students_seller ss 9前端//
、大数据工程师、算法工程师(
/用户画像/推荐 )、
K8s
架构师、运维工程师、产品经理、安全工程师、网络工程师。欢迎加入掌门教育大家庭,一起畅谈技术,分享交流。投递信箱:zeying.shi@zhangmen.com 施老师。 往期好文 INFRA-JOY微服务治理验证工程实践分享
掌门持续交付流水线大规模实践
绘本阅读总结
mysql数据库优化实战--日期及IP地址的正确存储方式
以上是关于掌门 MySQL 数据库规约落地及优化实战的主要内容,如果未能解决你的问题,请参考以下文章
阿里巴巴 Sentinel 落地实践--掌门1对1微服务体系 Solar
掌门1对1微服务体系Solar第2弹:阿里巴巴Sentinel落地实践
MySQL之父等国际数据库掌门人齐聚,1024 程序员节全体大会重磅官宣!
MySQL之父等国际数据库掌门人齐聚,1024 程序员节全体大会重磅官宣!