美文网首页
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