zoukankan      html  css  js  c++  java
  • mysql面试(1)

    一一个 SQL 执行行行的很慢,我们要分两种情况讨论:1、大大多数情况下很正常,偶尔很慢,则有如下原因
    (1)、数据库在刷新脏⻚页,例例如 redo log 写满了了需要同步到磁盘。
    (2)、执行行行的时候,遇到锁,如表锁、行行行锁。
    2、这条 SQL 语句句一一直执行行行的很慢,则有如下原因。
    (1)、没有用用上索引:例例如该字段没有索引;由于对字段进行行行运算、函数操作导致无无法用用索引。
    (2)、数据库选错了了索引。

    1、定义表的时候,尽量量不不允许字段值为 null,可以用用 default 设置默认值。
    2、尽量量用用 union 来代替 or,避免查询没有走走索引。
    3、注意,用用 id = null 的等值查询,也是不不会匹配到值为 null 的行行行的,而而是应该用用 id is null。

    为什用 B+ 树做索引而而不不用用哈希表做索引?
    1、哈希表是把索引字段映射成对应的哈希码然后再存放在对应的位置,这样的话,如果我们要进行行行模
    糊查找的话,显然哈希表这种结构是不不支支持的,只能遍历这个表。而而B+树则可以通过最左前缀原则快速
    找到对应的数据。
    2、如果我们要进行行行范围查找,例例如查找ID为100 ~ 400的人人,哈希表同样不不支支持,只能遍历全表。
    3、索引字段通过哈希映射成哈希码,如果很多字段都刚好映射到相同值的哈希码的话,那么形成的索
    引结构将会是一一条很⻓长的链表,这样的话,查找的时间就会大大大大增加。

    主键索引和非非主键索引有什么区别?

    主键索引和非非主键索引的区别是:非非主键索引的叶子子节点存放的是主键的值,而而主键
    索引的叶子子节点存放的是整行行行数据,其中非非主键索引也被称为二二级索引,而而主键索引也被称为聚簇索

  • 相关阅读:
    splay区间模板-1331-序列终结者1
    splay单点模板-5203-BZOJ3224 普通平衡树
    线段树模板-1204-影子的宽度
    树状数组模板-1200-序列和
    YAML配置复杂集合类型
    webpack vue-router vue 打包上线一些列问题
    idea 注释模板
    JavaScript中reduce()方法
    ES6实用语法糖
    axios 备忘
  • 原文地址:https://www.cnblogs.com/topass123/p/12639559.html
Copyright © 2011-2022 走看看