版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
里里MySQL开发规约实战芦火阿里云运维专家C-可里云前言/topic/java2020C-可里云语句规范要建立在结构规范的基础上字符集统一排序规则常用字符集描述默认校对规则最大长度备注latin1cp1252WestEuropeanlatin1_swedish_ci1早期官方默认字符集GBKSimplifiedChinesegbk_chinese_ci2非国际标准utf8_general_ci3utf8mb4utf8mb4_0900_ai_ci4官方8.0默认字符集字段解决业务歧义、解决业务歧义、隐式转换问题字段长度C-可里云语句规范要建立在结构规范的基础上索引80%的语句性能问题都可以靠索引解决单列索引要充分评估定期review索引有效性不要走极端复合索引所有列所有列都建单列索引C-可里云SQL语句编写规范规范语法不兼容语法Selectid,count(*)fromsbtest.sb别名所有返回列要给有意义的命名,与列名原则一致,强制as关键词Selectid,count(*)id_countfromsbtest.sbtest1groOnly_full_groupbyC-可里云SQL语句编写规范执行顺序5.WINDOWfunctions语句性能数据流的流向数据返回逻辑数据的筛选机制比如:leftjoinwhere场景C-可里云SQL语句编写规范如何判断语句是否已最优:explainC-可里云SQL语句编写规范禁止项如wherelength(name)=,Admin,或where建议项使用join替代子查询减少过于复杂的查询.&拼串写法C-可里云SQL语句编写规范用数据库的思维考虑SQL-一个语句解决所有问题导致过于复杂的查询,执行计划不稳定-开发应用的逻辑写语句所有的运算、判断应用逻辑都放到SQL实现-存储过程使用过重难以调试、定位问题-少即是美每一层结果集都要最大限度的减小-新feature谨慎应用到生产中C-可里云SQL语句编写规范Sql改写-join请注意join键为PK,也就是左表右表应该是1对1的关系C-可里云SQL语句编写规范Sql改写-join等价于selectcount(a.id)fromsbtest1a;Sql改写一般会出现在复杂查询的Join场景中半连接:exists,in此类查询过慢时,请考虑是否可通过SQL改写优化C-可里云SQL语句编写规范Sql改写-分页统计selectcount(*)from执行计划上无本质区别,但语句冗余C-可里云SQL语句编写规范Sql改写-分页统计selectcount(a.id)fromsbtest1a;2.进一步寻找优化空间C-可里云事务的使用与优化并发控制的单位概念不再具体解释大事务不等于长事务C-可里云事务的使用与优化事务的问题单个事务不拆分存放4.锁问题优化大事务1.大事务拆分为小事务长事务2.事务分解(不必要的请求摘除)3.应用侧保证一致性事务使用基本原则在保证业务逻辑的前提下,尽可能缩短C-可里云事务的使用与优化事务问题定位长事务:Information_schema.innodb_trx例如:SELECTtrx.trx_id,trx.trx_started,锁问题information_schema.innodb_performance_schema.data_lock_wC-可里云开发中常见问题与最佳实践分页问题传统写法扫描大量无效数据后,返回请求数据C-可里云开发中常见问题与最佳实践分页问题select*fromsbtest1whereid>#max_id#orderbyidlimitn;•适用顺序翻页的场景,每次记录上一页#max_id#带入下一次查询中select*fromsbtest1asainnerjoin(selectidfromsbtest1orderbyidlimitm,n)asb•适用只按照id进行分页,无where条件select*fromsbtest1asainnerjoin(selectidfromsbtest1wherecol=xxxxorderbyidlimitm,n)asb•适用于带where条件,同时按照id顺序分页•此时,需要在where条件上创建二级索引C-可里云开发中常见问题与最佳实践大表数据清理①单次delete行数过多,容易导致锁堵塞、主从复制延迟、影响线上业务ForIin“max(id)-min(id)/1000”C-可里云开发中常见问题与最佳实践隐式转换问题隐式转换发生在比较值类型不一值的场景下,除去一些规定情况最终都是转换为浮点数进行比较此类问题在编写时很难发现,上线导致严重性能问题C-可里云开发中常见问题与最佳实践循环外部循环应用侧实现主要问题来自每次请求的rt例如:insert(db交互)建议batch一次写入一般常用在存储过程事务无法保证Commit;endwhile频繁commit或:endwhile数据一致性以及长事务C-可里云开发中常见问题与最佳实践存储过程中的事务处理C-可里云开发中常见问题与最佳实践常见问题-1最左
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物(湖北卷)(考试版及全解全析)-2026年高考考前预测卷
- 犬胰腺炎住院护理操作规范
- 高处作业安全防护配置标准
- 施工电梯安全检查交底方案
- 边缘节点容量扩展巡检手册
- 宠物日用品补货频次制定手册
- 燃气管道施工安全控制措施
- 抹灰工程质量验收规范
- 犬术后回访关怀制度规范流程
- 入户评估需求反馈处理流程
- 食管癌科普课件
- 2024-2025学年浙江省杭州市拱墅区源清中学高一下学期期中考试化学试题
- 2024-2025学年黑龙江省牡丹江市初中课改联盟第一子联盟七年级下学期期中考试数学试卷
- 人教版初中历史七至九年级全册知识点总结
- (正式版)DB14∕T 3507-2025 《公路桥梁墩身纠偏技术规程》
- 情侣关系解除协议书模板
- 电梯井道作业平台技术规程DB11∕T 1847-2021
- QC/T 1220-2025商用车离合器用液压软管总成
- 2025年住院医师规培-湖北-湖北住院医师规培(整形外科)历年参考题库含答案解析
- 2025~2026学年度下学期八年级期中考试 历史(含答题卡、答案)
- 船舶试航作业计划方案(3篇)
评论
0/150
提交评论