跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么加数据库索引搜索快?
未分類
24 5 月 2020

为什么加数据库索引搜索快?

为什么加数据库索引搜索快?

資深大佬 : mlgm2020 2

刚在网上看到:

[首先:先假设有一张表,表的数据有 10W 条数据,其中有一条数据是 nickname=’css’,如果要拿这条数据的话需要些的 sql 是 SELECT * FROM award WHERE nickname = ‘css’
一般情况下,在没有建立索引的时候,mysql 需要扫描全表及扫描 10W 条数据找这条数据,如果我在 nickname 上建立索引,那么 mysql 只需要扫描一行数据及为我们找到这条 nickname=’css’的数据,是不是感觉性能提升了好多咧….]

没理解。。WHERE nickname = ‘css’ 不是本来就搜索 nickname 这一列吗, 不知道加上索引有什么变化

大佬有話說 (6)

  • 資深大佬 : cvl

    想一下一本书,目录得作用

  • 資深大佬 : lkyier

    数据库底层存储的大多是 tuple (元组),对于 where 子句,需要遍历每一个元组来寻找数据,而建立索引就是为了减少遍历带来的性能损失。你可以搜下这两篇文章:
    数据库内核杂谈(二):存储“演化论”,
    数据库内核杂谈(三):索引优化,

  • 資深大佬 : opengps

    索引这个词,想想书的索引就很明确了,书本的索引是对标题进行排序,找的时候可以根据排序规律跳跃快速查找

    数据库里也是一样,表的索引就是把某些列按照循序排好,单独找个位置存下,每次更新或者新增时候同时要维护下存储的索引,然后查询时候优先从看看查询条件里,有没有能用到的索引列,然后就“跳跃过去快速找数据”

  • 資深大佬 : luckyrayyy

    不加索引:nickname 就是乱序的,字母 a 后面可能是 z,下一个可能是 d 。你想找 css 得遍历一遍。
    加了索引:nickname 是有序的,a 后面 b,b 后面 c,找到 c 再找下一级的 s,岂不是快得多?

  • 資深大佬 : daozhihun

    mysql 是前缀索引,用 b+数存储,lz 该补补基础了

  • 資深大佬 : zxCoder

    有索引你就直接跳到 css,没索引你就一行一行看是不是 css

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具