美文网首页Java成长之路互联网科技Java 杂谈
蚂蚁金服架构师带你学优化一MySql性能优化实战

蚂蚁金服架构师带你学优化一MySql性能优化实战

作者: Java_老男孩 | 来源:发表于2019-05-06 13:31 被阅读91次

    概要:

    Mysql的优化,大体可以分为三部分:索引的优化,sql语句的优化,表的优化。本文主要帮助自己整理思路,也可作为一个学习MySQL优化的提纲。

    索引的优化
    1. 只要列中含有NULL值,就最好不要在此例设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引
    2. 尽量使用短索引,如果可以,应该制定一个前缀长度
    3. 对于经常在where子句使用的列,最好设置索引,这样会加快查找速度
    4. 对于有多个列where或者order by子句的,应该建立复合索引
    5. 对于like语句,以%或者‘-’开头的不会使用索引,以%结尾会使用索引
    6. 尽量不要在列上进行运算(函数操作和表达式操作)
    7. 尽量不要使用not in和<>操作
    sql语句的优化
    1. 查询时,能不要就不用,尽量写全字段名
    2. 大部分情况连接效率远大于子查询
    3. 多使用explain和profile分析查询语句
    4. 查看慢查询日志,找出执行时间长的sql语句优化
    5. 多表连接时,尽量小表驱动大表,即小表 join 大表
    6. 在千万级分页时使用limit
    7. 对于经常使用的查询,可以开启缓存
    表的优化
    1. 表的字段尽可能用NOT NULL
    2. 字段长度固定的表查询会更快
    3. 把数据库的大表按时间或一些标志分成小表
    4. 将表分区

    蚂蚁金服架构师带你学优化-MySql性能优化实战(附详细视频教程)

    文末有视频教程获取方式
    • 1.步步惊心,MySql优化满地是坑;
    • 2.丛林密布,优化有图可循;
    • 3.悔恨难当,只因用错索引;
    • 4.披荆斩棘,执行计划让你脱离深坑;
    • 5.豁然开朗,SQL优化有方可循

    一个SQL引发的思考

    常用的优化方式

    反范式化设计

    三大范式


    物理设计

    索引是什么?

    最简单的索引
    稍微复杂点的索引

    MySql中的索引

    索引分类

    总结

    优化通常都需要三管齐下:不做、少做、快速地做。我们希望这里的案例能够帮助你将理论和实践联系起来。


    本文的重点是MySql性能优化。需要更详细思维导图和视频资料的可以加一下技术交流分享群:“708 701 457”免费获取

    同时我经过多年的收藏目前也算收集到了一套完整的学习资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货,希望对想成为架构师的朋友有一定的参考和帮助



    相关文章

      网友评论

        本文标题:蚂蚁金服架构师带你学优化一MySql性能优化实战

        本文链接:https://www.haomeiwen.com/subject/ctkhoqtx.html