• 数据库里的索引作用 实例理解


    https://blog.csdn.net/guyue35/article/details/72910466: 单一索引和复合索引区别及联系

    https://www.cnblogs.com/hyd1213126/p/5828937.html :sql-索引的作用(超详细)

    通俗的理解可以为,一般ORACLE做一次查询是需要全库扫描的,如果安装了索引,那等于你看书,知道哪个章节一样,这样搜索的范围就小了.
    index的创建和修改,删除跟表的操作相当.

    比如:根据用户名和密码查询该用户的购物纪录?
    那么数据库数据库中有2个表!
    一个是用户信息!另一个是购物纪录!
    那么我们创建索引,关联用户表和购物纪录表!
    怎么关联? : 在 购物纪录表 中创建 FK 引用用户的ID
    那么根据用户名和密码查询到该用户的ID,在根据此ID 检索 购物纪录表 的纪录! 这样就能快速的定位到该用户的 购物纪录 了!
    就相当与书的目录一样,根据目录的页码直接翻到你想看的地方去!

    SELECT
    c.companyID,
    c.companyName
    FROM
    Companies c,
    USER u
    WHERE
    c.companyID = u.fk_companyID
    AND c.numEmployees >= 0
    AND c.companyName LIKE '%i%'
    AND u.groupID IN ( SELECT g.groupID FROM Groups g WHERE g.groupLabel = 'Executive' )

    这条语句涉及3个表的联接,并且包括了许多搜索条件比如大小比较,Like匹配等。在没有索引的情况下Mysql需要执行的扫描行数是77721876行。

    而我们通过在companyIDgroupLabel两个字段上加上索引之后,扫描的行数只需要134行。

    在Mysql中可以通过Explain Select来查看扫描次数。可以看出来在这种联表和复杂搜索条件的情况下,索引带来的性能提升远比它所占据的磁盘空间要重要得多。

  • 相关阅读:
    RTOS内功修炼记(三)—— 内核到底是如何管理中断的?
    图片预览
    js 操作二进制文件
    javascript 引擎
    js 中逗号运行符号
    语法高亮组件reactsyntaxhighlighter
    域名
    下载文件
    二进制文件存储到本地
    react 代码编辑器reactace
  • 原文地址:https://www.cnblogs.com/hahajava/p/9698256.html
Copyright © 2020-2023  润新知