1. 说一说对数据库优化的理解
      1. 原则
        1. 减少系统瓶颈、减少资源占用、增加系统反应速度
      2. 针对查询
        1. 使用索引、使用连接替代子查询
      3. 针对慢查询
        1. 分析日志
      4. 针对插入
        1. 禁用索引禁用、禁用检查、禁用外键检查、禁用自动提交、禁用唯一性检查
      5. 针对数据库结构
        1. 拆表、增加中间表、增加冗余字段
    2. 该如何优化MySQL的查询
      1. 使用索引
        1. 索引不起作用的三种情况
          1. like %xx
          2. 不满足最左前缀
          3. 使用or的查询
      2. 优化子查询
        1. join替代子查询
    3. 表中有几千万条数据怎么办?
      1. 优化SQL和索引
      2. 增加缓存
      3. 读写分离
      4. 使用分区表
      5. 垂直与水平拆分
    4. 对MySQL的慢查询优化有了解吗?(面试真题)
      1. 索引没有起作用
        1. 检查like、or、最左前缀
      2. 优化数据结构
        1. 分表
        2. 建立中间表
      3. 分解关联查询
      4. 优化LIMIT分页
    5. 说说对explain的了解
      1. 基本语法
        1. EXPLAIN [EXTENED] SELECT XXX
      2. 查询结果
    列名 备注
    type 本次查询表联接类型,从这里可以看到本次查询大概的效率。
    key 最终选择的索引,如果没有索引的话,本次查询效率通常很差。
    key_len 本次查询用于结果过滤的索引实际长度。
    rows 预计需要扫描的记录数,预计需要扫描的记录数越小越好。
    Extra 额外附加信息,主要确认是否出现 Using filesort、Using temporary 这两种情况。