目录
-
- 专栏导读
-
- 1、先了解MySQL的执行过程
- 2、数据库常见规范
- 3、所有表必须使用Innodb存储引擎
- 4、每个Innodb表必须有个主键
- 5、数据库和表的字符集统一使用UTF8
- 6、查询SQL尽量不要使用select *,而是具体字段
- 7、避免在where子句中使用 or 来连接条件
- 8、尽量使用数值替代字符串类型
- 9、使用varchar代替char
- 10、财务、银行相关的金额字段必须使用decimal类型
- 11、避免使用ENUM类型
- 12、去重distinct过滤字段要少
- 13、where中使用默认值代替null
- 14、避免在where子句中使用!=或<>操作符
- 15、inner join 、left join、right join,优先使用inner join
- 16、提高group by语句的效率
- 17、清空表时优先使用truncate
- 18、操作delete或者update语句,加个limit或者循环分批次删除
- 19、UNION操作符
- 20、SQL语句中IN包含的字段不宜过多
- 21、批量插入性能提升
- 22、表连接不宜太多,索引不宜太多,一般5个以内
- 23、禁止给表中的每一列都建立单独的索引
- 24、如何选择索引列的顺序
- 25、对于频繁的查询优先考虑使用覆盖索引
- 26、建议使用预编译语句进行数据库操作
- 27、避免产生大事务操作
- 28、避免在索引列上使用内置函数
- 29、组合索引
- 30、复合索引最左特性
- 31、必要时可以使用force index来强制查询走某个索引
- 32、优化like语句
- 33、统一SQL语句的写法
- 34、不要把SQL语句写得太复杂
- 35、关于临时表
- 36、将大的DELETE,UPDATE、INSERT 查询变成多个小查询
- 37、使用explain分析你SQL执行计划
- 38、读写分离与分库分表
- 39、使用合理的分页方式以提高分页的效率
- 40、尽量控制单表数据量的大小,建议控制在500万以内。
- 41、谨慎使用Mysql分区表
- 42、尽量做到冷热数据分离,减小表的宽度
- 43、禁止在表中建立预留字段
- 44、禁止在数据库中存储图片,文件等大的二进制数据
- 45、建议把BLOB或是TEXT列分离到单独的扩展表中
- 46、TEXT或BLOB类型只能使用前缀索引
- 47、一些其它优化方式
专栏导读
🏆作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 ,专注Java硬核干货分享,立志做到Java赛道全网Top N。
🏆本文收录于Java基础教程系列(进阶篇),本专栏是针对大学生、初级Java工程师精心打造,针对Java生态,逐个击破,不断学习,打通Java技术栈。
🏆订阅后,可以阅读Java基础教程系列(进阶篇)中全部文章,包含Java基础、Java高并发、Spring、MySQL等Java进阶技术栈。
🏆还可以