`

什么样的列使用索引?

阅读更多
什么样的列使用索引?
这个问题以前经常面试别人,大多数的回答都是非常浅的。只回答重复度低的,为什么重复度低的就适合采用索引,好像很少有人能答出来。

先说一个前提,所有的系统瓶颈最终都落在io上,包括网络io和磁盘io,例如,一台机器cpu每秒可以执行5亿条指令,如果是7200转的磁盘的话,一分钟7200转,一转1/120秒,大概要9-11毫秒的样子。换句话说,一次磁盘访问的时间大概是40万条指令。所以我们希望的是能充分利用cpu,减少磁盘的访问次数。B+tree正好符合这一场景,增加了运算次数,减少了数据读取的次数。

关系型数据库大多采用的索引算法就是B+tree,树天生就是解决查找问题的,数据的重复度越低,越能体现出价值。对于重复的数据,只能使用rowid标示一下。这里不具体讲B+tree的结构了,有兴趣的可以百度一下。

注:转。
分享到:
评论

相关推荐

    ORACLE重建索引总结

    7、什么样的重建方式更好? (1)、建索引的办法: 1.1、删除并从头开始建立索引。 1.2 、 使用 alter index index_name rebuild 命令重建索引。 1.3 、 使用 alter index index_name coalesce 命令重建...

    MySQL从入门到高级,进阶详解

    -MySQL的基本架构是怎么样的? 如何查看空闲连接列表? -MySQL连接超出默认连接的8小时,除了重连还有其他办法吗? 如何在查询的时候不使用缓存? 缓存查询完后如何工作? -MySQL内部支持缓存查询吗? -MySQL8为何废弃掉...

    SQLServer高频面试题及答案

    22. 什么样的字段适合建索引? 适合建索引的字段是那些频繁查询的字段,可以提高数据查询效率。 23. 聚集索引和非聚集索引有什么区别? 聚集索引和非聚集索引是两种不同的索引类型。聚集索引是将数据和索引存储在...

    laravel-schema-list:列出数据库连接的表,列和索引

    使用命令行可以轻松列出给定表的数据库表和列。 安装 您可以通过composer安装该软件包: composer require ohseesoftware/laravel-schema-list 用法 列出默认连接中的表: php artisan schema:tables 列出给定表...

    Java面试宝典2020修订版V1.0.1.doc

    6、什么样的字段适合建索引 41 7、索引类型有哪些? 42 8、什么是事务?什么是锁? 42 9、什么叫视图?游标是什么? 43 10、视图的优缺点 43 11、列举几种表连接方式,有什么区别? 43 12、主键和外键的区别? 44 13...

    最全MySQL面试题集合

    MySQL 面试题集合 ...什么样的查询语句用不到索引 * 函数计算 * 数据类型转换 * like %开头 * or 运算 * 复合索引,没有左边字段索引 如何优化 * 经常被查询的区分度高的列做索引 * 数据量小的表不需要建立索引

    达内总结的java最新笔试题core java,sql,web应有尽有

    索引聚簇表:索引聚簇表是表相关的表共享同一数据块中的相同列,并把相关数据存储中同一个数据块上。创建索引聚簇表中最重要的是对SIZE参数有很好的估量,否则聚簇将会降低空间利用,降低效率。 使用索引聚簇表的...

    在 2D 或 3D 矩阵中找到任何元素编号“e”的“IJK”索引:很多时候可能需要识别元素编号的索引、“i”、“j”和“k”值-matlab开发

    很多时候可能需要识别元素编号“e”的索引、“i”(行)、“j”(列)和“k”(平面)值 % 样品用量 1 % [行、列、平面]=findijk(79,[10 10 10]) %行= % 9 % 列 = % 8 % 平面 = % 1 % 样品用量 2 % [行、列、平面]=...

    什么是NoSQL数据库?

    为有数据更新的表做索引或表结构(schema)变更 字段不固定时应用 对简单查询需要快速返回结果的处理 。。。。。。 NoSQL数据库 为了弥补关系型数据库的不足(特别是最近几年),NoSQL数据库出现了。关系型数据库...

    MySQL 是怎样运行的:从根儿上理解 MySQL(下).pdf

    * key_len:当前查询实际使用的索引的长度 * ref:当前查询的关联字段 * rows:当前查询的预计扫描行数 * filtered:当前查询的过滤率 * Extra:当前查询的额外信息 Extra 列的各种额外信息: * No tables used:...

    MySQL数据库查询优化

    MySQL中对什么样的条件自动进行优化?如何写出可利用索引的条件语句? 预计时间1小时 第7课 查询优化技术理论与MySQL实践(五)------外连接消除、嵌套连接消除与连接消除 连接方式有些什么类型?不同类型的连接又...

    sql总结.doc

    ·什么是索引 ·索引的基本原理 ·索引的基本写法 ·索引的分类 ·索引的作用 ·索引的优缺点 ·索引的建立原则 2、存储过程 ·什么是存储过程 ·存储过程的基本写法 ·存储过程的作用 ·存储过程的优缺点 ·存储...

    db2-技术经验总结

    1.58. 怎么样获取表结构以及索引的信息 82 1.59. 如果怀疑应用程序有死锁现象,如何确认是否死锁,并判断是哪些程序引起的死锁? 84 1.60. 数据库创建以后相关的目录和文件都有哪一些? 85 1.61. 自增列(IDENTITY) 86...

    数据库原理与应用:第5章 SQL Server2005表的创建与操作.ppt

    * 需要使用什么样的索引 * 哪些列作为主键 六、创建表 * 使用 SSMS 创建表 + 创建主键约束 + 创建唯一性约束 + 创建外键约束 + 创建检查约束 + 保存表的定义 * 使用 T-SQL 语句创建表 七、实例分析 * 在...

    mysql网络数据库指南(中文版) part1

    2.3.4 希望对值进行什么样的比较 87 2.3.5 计划对列进行索引吗 87 2.3.6 列类型选择问题的相互关联程度 88 2.4 表达式求值和类型转换 88 2.4.1 撰写表达式 89 2.4.2 类型转换 94 第3章 MySQL SQL 语法及其用法...

    mysql笔记,mysql优化图解

    什么样的表才是符合3NF (范式) 表的范式,是首先符合1NF, 才能满足2NF , 进一步满足3NF 1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只有数据库是关系型数据库(mysql/oracle/db2/informix/...

    Toad 使用快速入门

    Toad 使用快速入门 目录 一.Toad功能综述 二.系统需求 三.安装指南 四.快速入门 1. Schema browser的用法简介 2. SQL Editor的使用介绍 3. Procedure Editor的用法介绍 4. 如何进行PLSQL的debug 5. 如何...

    elastiknn:Elasticsearch插件,用于最近的邻居搜索。 存储向量并使用精确算法和近似算法运行相似性搜索

    如果是这样,请考虑提交拉取请求以在下面列出您的组织。 :使用Elastiknn进行数百万个图像集中的反向图像查找 建物 建造 地位 Github CI构建 Github发布版本 发行版 神器 释放 快照 资料下载 Elasticsearch插件...

    MYSQL网络数据库PDF学习资源

    2.3.4 希望对值进行什么样的比较 87 2.3.5 计划对列进行索引吗 87 2.3.6 列类型选择问题的相互关联程度 88 2.4 表达式求值和类型转换 88 2.4.1 撰写表达式 89 2.4.2 类型转换 94 第3章 MySQL SQL 语法及其用法 99 ...

Global site tag (gtag.js) - Google Analytics