索引

作者: Carver_ | 来源:发表于2020-04-16 22:09 被阅读0次


索引

1. 思考

在图书馆中是如何找到一本书的?

一般的应用系统对比数据库的读写比例在10:1左右(即有10次查询操作时有1次写的操作),

而且插入操作和更新操作很少出现性能问题,

遇到最多、最容易出问题还是一些复杂的查询操作,所以查询语句的优化显然是重中之重

2. 解决办法

当数据库中数据量很大时,查找数据会变得很慢

优化方案:索引

3. 索引是什么

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度

4. 索引目的

索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?

5. 索引的使用

查看索引

showindexfrom表名;

创建索引

如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致

字段类型如果不是字符串,可以不填写长度部分

createindex索引名称on表名(字段名称(长度))

删除索引:

dropindex索引名称on表名;

6. 索引demo

6.1. 创建测试表testindex

createtabletest_index(titlevarchar(10));

6.2 使用 source 命令,导入十万条数据

# 备份的命令# mysqldump -uroot -p python_test_1 > python_test.sql# 执行 .sql 文件的内容source D:/MYSQL/bin/python_test.sql

6.3. 查询

开启运行时间监测:

setprofiling=1;

查找第1万条数据ha-99999

select*fromtest_indexwheretitle='ha-99999';

查看执行的时间:

showprofiles;

为表title_index的title列创建索引:

createindextitle_indexontest_index(title(10));

执行查询语句:

select*fromtest_indexwheretitle='ha-99999';

再次查看执行的时间

showprofiles;

7. 注意:

要注意的是,建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where字句单独建立索引了,对于比较小的表,排序的开销不会很大,也没有必要建立另外的索引。

建立索引会占用磁盘空间

相关文章

  • MySQL索引

    MySQL索引 索引介绍 索引原理与分析 组合索引 索引失效分析 索引介绍 什么是索引索引:包括聚集索引、覆盖索引...

  • Mysql优化

    一.索引科普 主键索引 唯一索引 普通索引 单列索引 多列索引 聚簇索引 非聚簇索引 前缀索引 全文索引 二.优化...

  • Oracle 索引学习

    创建索引 标准语法 唯一索引 组合索引 反向键索引 示例 删除索引 修改索引 重建索引 联机重建索引 合并索引

  • MySQL索引

    索引的作用 查看索引 创建索引 删除索引 索引类型 强制索引和禁止某个索引

  • Pandas数据操作

    Pandas数据操作 Series索引 行索引 切片索引 不连续索引 布尔索引 DataFrame索引 列索引 不...

  • 深入理解四种数据库索引类型(- 唯一索引/非唯一索引 - 主键索

    唯一索引/非唯一索引 主键索引(主索引) 聚集索引/非聚集索引 组合索引 唯一索引/非唯一索引 唯一索引 1.唯一...

  • MYSQL索引

    mysql的4种常用索引类型:唯一索引,主键索引,全文索引,以及普通索引。 普通索引(INDEX):普通索引为索引...

  • 索引类型

    索引类型有: 主键索引; 唯一索引; 普通索引; 全文索引; 多列索引;

  • mysql 查询效率优化之 常用索引的几种类型 新手使用教程,少

    Mysql常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引(联合索引,多列索引) 一、建立的方法介绍 ...

  • MySql 数据查询优化

    1. MySQL索引类型: mysql的索引有5种:主键索引、普通索引、唯一索引、全文索引、聚合索引(多列索引)。...

网友评论

      本文标题:索引

      本文链接:https://www.haomeiwen.com/subject/krejvhtx.html