美文网首页
mysql面试题

mysql面试题

作者: hszz | 来源:发表于2020-10-23 16:25 被阅读0次

    mysql面试题
    MySQL语句优化 | 慢生活的记忆
    sql基本功
    mysql多表查询题

    mysql要点

    • mysql的主从备份
    • mysql隔离等级
    • mysql 各种引擎的区别
    • select count(*)在mysql的引擎中那个最快
    • 数据库切分
    • 数据库索引

    名词介绍

    • 脏读:指一个线程中的事务读取到了另外一个线程中未提交的数据。
    • 不可重复读:指一个线程中的事务读取到了另外一个线程中提交的update的数据。
    • 幻读(虚读):指一个线程中的事务读取到了另外一个线程中提交的insert的数据。

    B+树

    1. B+树特点
    • 有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

    • 所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

    • 所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

    1. B+树的优势
    • 单一节点存储更多的元素,使得查询的IO次数更少。

    • 所有查询都要查找到叶子节点,查询性能稳定。

    • 所有叶子节点形成有序链表,便于范围查询。

    参考https://mp.weixin.qq.com/s/jRZMMONW3QP43dsDKIV9VQ

    mysql语句优化

    • 字段取值有限且固定使用 ENUM 而不是 VARCHAR
    • 操作一条数据时加上 limit 1
    • 避免表字段运行为null,设置默认值(例如:int类型设置默认值为0)
    • 创建合适的索引(过多的索引/不合理的索引会拖慢速度)
    • >>= 需要根据数据量去判断
    • 分页 limit
      • 数据量较小时直接使用limit, 例 select * from table1 limit 10,10
      • 数据量较大时使用子句先获取到offset的id,例 select * from table1 where id >=(select vid from table1 order by id limit 10000,1) limit 10select * from table1 limit 10000,10 查询速度快三倍左右

    相关文章

      网友评论

          本文标题:mysql面试题

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