mysql的sql语句相关优化理论基础

  1. 什么是存储引擎?
            数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。
            现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。

  2. mysql5.7版本的包含如下存储引擎

  3. InnoDB存储引擎(InnoDB 是系统的默认引擎,支持可靠的事务处理。)和MyISAM存储引擎对比
     

  4. 什么是索引?



    什么叫做排好序的快速查找数据结构?

    结论:

  5. 索引的优缺点
    优点:

    缺点:

    索引只是提高效率的一个因素,如果你的mysql存在大数据量的表,就需要花时间建立最优秀的索引或者优化查询sql。

  6. mysql的索引分类

  7. 创建索引的基本语法

  8. mysql的索引结构
    1)BTree索引
      



    2)Hash索引,full-text全文索引,R-Tree索引这个和我们java开发相关性不大,开发中我们主要是BTree索引。

  9. 哪些情况需要建索引

  10. 哪些情况不需要创建索引
    1) 表记录数太少
    2)经常增删改的表
              因为索引提高了查询的速度,但是同时也降低了更新表的速度,比如对表进行insert,update和delete。因为更新
         更新表时Mysql不仅仅要保存数据还要保存索引文件。
    3) 数据重复且分布平均的表字段,应该只为最经常查询和最经常排序的数据列建立索引。如果某个数据列包含许多重复
        的内容,那么为它建立索引就没有实际的效果了。

  11. mysql之explain(执行计划)

    例如我们使用explain分析一条查询语句:

    1)执行结果字段id的含义
           

    2)执行结果字段select_type的含义
         
         这个是查询类型,总共有6个,主要是用于区别普通查询,联合查询,子查询等复杂查询。
         
    3)  执行结果字段table的含义
         
    4) 执行结果字段type的含义
          这个字段叫做访问类型排列,总共有如下几种类型:


    5) 执行结果字段possible_keys的含义
          
    6) 执行结果字段key的含义

    7) 执行结果字段key_len的含义

    8) 执行结果字段ref的含义

    9)执行结果字段rows的含义

    10) 执行结果字段Extra的含义

    a:Using filesort出现这个不好,需要尽快优化(九死一生)


    b: Using Temporary效率比上面的Using filesort更差(十死无生)


    c: Using index效率高


    d:其他几种

    Using where :表示使用了where过来条件
    Using join buffer: 表示使用了连接缓存
    impossible where: where 字句的值总是false,不能用来获取任何元组
           

  12. 什么是mysql的覆盖索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值