养成SQL好习惯总结

数据湖
• 阅读 685

1.写完SQL先explain查看执行计划(SQL性能优化)
日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。
常见的客户端工具如PL/SQL Developer,Navicat, Toad都支持查看解释计划。

2、操作delete或者update语句,加个limit(SQL后悔药)

  1. 设计表的时候,所有表和字段都添加相应的注释(SQL规范优雅)
  2. SQL书写格式,关键字大小保持一致,使用缩进。(SQL规范优雅)    
  3. INSERT语句标明对应的字段名称(SQL规范优雅)
  4. 变更SQL操作先在测试环境执行,写明详细的操作步骤以及回滚方案,并在上生产前review。(SQL后悔药)
    变更SQL操作先在测试环境测试,避免有语法错误就放到生产上了。
    变更Sql操作需要写明详细操作步骤,尤其有依赖关系的时候,如:先修改表结构再补充对应的数据。
    变更Sql操作有回滚方案,并在上生产前,review对应变更SQL。
    7.设计数据库表的时候,加上三个字段:主键,create_time,update_time。(SQL规范优雅)
  5. 写完SQL语句,检查where,order by,group by后面的列,多表关联的列是否已加索引,优先考虑组合索引。(SQL性能优化)
    9.修改或删除重要数据前,要先备份,先备份,先备份(SQL后悔药)
  6. where后面的字段,留意其数据类型的隐式转换(SQL性能优化)
  7. 尽量把所有列定义为NOT NULL(SQL规范优雅)
    12.修改或者删除SQL,先写WHERE查一下,确认后再补充 delete 或 update(SQL后悔药)
    13.减少不必要的字段返回,如使用select <具体字段> 代替 select * (SQL性能优化)
    14.所有表必须使用Innodb存储引擎(SQL规范优雅)
    15.数据库和表的字符集尽量统一使用UTF8(SQL规范优雅)
  8. 尽量使用varchar代替 char。(SQL性能优化)
  9. 索引命名要规范,主键索引名为 pk_ 字段名;唯一索引名为 uk _字段名 ;普通索引名则为 idx _字段名。(SQL规范优雅)
    21.如果修改/更新数据过多,考虑批量进行。
    //反例
    delete from account limit 100000;
    //正例
    for each(200次)
    {
    delete from account limit 500;
    }
点赞
收藏
评论区
推荐文章
lix_uan lix_uan
3年前
Hive调优
Explain查看执行计划在查询语句前加explainsqlexplainselectfromtable;查看详细执行计划explainextendedselectfromtable;建表优化分区表sql创建分区表createtabledeptpartition(deptnoint,dnamest
Wesley13 Wesley13
3年前
MySQL——性能优化
性能优化的思路1、首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语句。MySQL——慢查询2、其次使用explain命令去查看有问题的SQL的执行计划。MySQL——执行计划EXPLAIN3、最后可以使用showprofile\s\查看有问题的SQL的性能使用情况。MySQL高级:showprofile
Wesley13 Wesley13
3年前
Oracle 中定位重要(消耗资源多)的SQL
在分析SQL性能的时候,经常需要确定资源消耗多的SQL,总结如下:1查看值得怀疑的SQLselectsubstr(to\_char(s.pct,'99.00'),2)||'%'load,       s.executionsexecutes,       p.sql\_text from(select
Stella981 Stella981
3年前
Explain(MySQL高级知识四)
前言:explain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句。explain主要用于分析查询语句或表结构的性能瓶颈。注:本系列随笔如无特殊说明都MySQL版本都为5.7.22。1.explain的作用通过explainsql语句可以知道如下内容:①表的读取顺序。(
Wesley13 Wesley13
3年前
Mysql 执行计划各列释义
在排查编写Mysql查询语句时,除了需要满足业务条件,还需要考虑所编写SQL的性能表现,避免出现慢SQL导致大量慢查询的情况。通常,可以通过查看执行计划的方式查看所编写SQL语句的性能优劣。此外,还可以通过查看语句的分阶段执行的时间、操作消耗来进行补充分析。1\.执行计划的列1.1.id列查询的序号1.2.s
Wesley13 Wesley13
3年前
MySQL EXPLAIN 详解
一.介绍  EXPLAIN命令用于SQL语句的查询执行计划。这条命令的输出结果能够让我们了解MySQL优化器是如何执行SQL语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。先解析一条sql语句,你可以看出现什么内容1EXPLAIN SELECT
Wesley13 Wesley13
3年前
SQL语句优化
SQL语句优化规范:1\.使用mysqlexplain对sql执行效率进行检测,explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。1)使用方法:在select语句前加上explain即可2)explain分析结果形式如下:table|type
Wesley13 Wesley13
3年前
mySql索引优化分析
MySQL索引优化分析为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等啥子?撸起袖子就是干!案例分析我们先
Stella981 Stella981
3年前
Redis企业级应用
   我们在做项目的时候经常会遇到很多性能的问题,也成为整个系统优化最疼痛的问题,主要还是因为在用户量大的时候或者就是说高并发访问的时候,我们系统的数据库会有一个限制。当然也可以通过对数据库的优化对系统进行优化,(最常见的数据库优化手段无非就是建索引,explain分析慢sql,以及sql语句的优化或者分库分表等一系列的策略,当然后面我会专门写一篇文章专
MySQL 执行计划详解 | 京东物流技术团队
本文从EXPLAIN分析SQL的执行计划开始,进行示例展示,并对输出结果进行解读,同时总结了EXPLAIN可产生额外的扩展信息以及EXPLAIN的估计查询性能,整篇文章基于MySQL8.0编写,理论支持MySQL5.0及更高版本。
高性能MySQL实战(三):性能优化 | 京东物流技术团队
这篇主要介绍对慢SQL优化的一些手段,而在讲解具体的优化措施之前,我想先对EXPLAIN进行介绍,它是我们在分析查询时必要的操作,理解了它输出结果的内容更有利于我们优化SQL。为了方便大家的阅读,在下文中规定类似key1的表示二级索引,key\part1表