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、索引字段通过哈希映射成哈希码,如果很多字段都刚好映射到相同值的哈希码的话,那么形成的索
    引结构将会是一一条很⻓长的链表,这样的话,查找的时间就会大大大大增加。

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

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

  • 相关阅读:
    自我介绍
    工作流
    spring框架
    关于建立内部会议讨论规范的想法
    论文第3章:移动绘图平台的架构设计
    迭代器、推导式、函数式编程学习笔记
    Python装饰器学习(九步入门)
    Inkpad绘图原理浅析
    从零开始创建一个插件
    Entity Framework的启动速度优化
  • 原文地址:https://www.cnblogs.com/topass123/p/12639559.html
Copyright © 2011-2022 走看看