MySQL 关于索引那点事

索引

其实数据库中的数据是按页存放的 其实索引也是按页存放的 所以本质上索引也占硬盘空间(以最小的消耗,换取最大的利益)

索引是一种有效组合数据的方式!为快速查找到指定记录做铺垫

目的就是快速或者某个记录!           提高了数据库的检索速度! 作用: 大大提高数据库的检索速度 改善数据库性能

MySQL索引存储类型分类   01.B-树索引:InnoDB,MyISAM均支持   02.哈希索引

其实索引是把双刃剑(利弊共存),如果使用不当,反而会降低索引性能

主键:加快检索数据/唯一标识

常用索引类型:    01.普通索引:允许在定义为索引的列中 出现 重复值和空值!    02.唯一索引:索引列不允许出现重复值,但是可以出现一个空值!    03.主键索引:创建主键的时候,系统会默认创建一个主键索引!唯一!不能为空!    04.复合索引:将我们的多个列组合起来!(name,sid)姓名和身份证号!    05.全文索引:允许值的全文查询!允许空值和重复值!适合在一个内容比较多的列!text!    06.空间索引:对空间数据类型的列建立的索引

■按照下列标准选择建立索引的列 频繁搜索的列 经常用作查询选择的列 经常排序、分组的列 ,经常用作连接的列(主键/外键) ■请不要使用下面的列创建索引 仅包含几个不同值的列 表中仅包含几行

Eg:

 --  查询指定表的索引
SHOW INDEX FROM student;
TABLE:索引所在的表
Non_unique:索引是否唯一   0:唯一  1:不唯一
key_name:索引名称
seq_in_index:该列在索引中的位置
column_name:定义所用的列名称
null:该列是否为空
index_type:索引类型    

--  给姓名增加 普通索引
CREATE  INDEX index_studentName 
ON student(studentName);
-- 给学生姓名和身份证号 增加 组合索引
CREATE INDEX index_name_sid
ON student(studentName,identityCard)

--  删除索引
DROP INDEX index_name_sid ON  student;
DROP  INDEX index_studentName ON  student;
 

--  创建索引的原则   01.经常被查询的列   02.经常用作选择的列   03.经常排序,分组的列   04.经常用作连接的列(主键/外键)

使用索引时的注意事项:   01.查询时减少使用*返回全部的列,不要返回不需要的列!   02.索引尽量要少,在字节数小的列上建立索引!   03.where字句中有多个条件表达式的时候,包含索引的列要放在其他表达式之前!   04.在order by的字句中避免使用表达式!

(C) 房上的猫 。 保留所有权利。  https://www.cnblogs.com/lsy131479/

如需转载,请注明出处!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏别先生

MYSQL子查询与连接

37:子查询与连接 SET 列名 gbk;//改变客户端数据表的编码类型。 子查询 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句 例...

1915
来自专栏程序你好

数据库MySQL中的JOIN详解

一个完整的SQL语句中会被拆分成多个子句,子句的执行过程中会产生虚拟表(vt),但是结果只返回最后一张虚拟表。从这个思路出发,我们试着理解一下JOIN查询的执行...

351
来自专栏云霄雨霁

数据查询语言QL

1490
来自专栏程序员宝库

Mysql - JOIN 详解

一个完整的SQL语句中会被拆分成多个子句,子句的执行过程中会产生虚拟表(vt),但是结果只返回最后一张虚拟表。从这个思路出发,我们试着理解一下JOIN查询的执行...

893
来自专栏idba

再说order by 优化

一 前言 为什么是再说呢?因为前面已经写过 《order by 原理以及优化》 ,介绍order by 的基本原理以及优化。如果觉得对order by原理了...

552
来自专栏运维技术迷

MySQL数据库(五):索引

一.什么是索引 相当于一本数的目录 二.使用索引的好处和坏处 好处:加快查找速度 坏处:占用磁盘空间 三.查看索引命令 命令格式: show inde...

2649
来自专栏小白客

常用SQL语句和语法汇总

近几年数据库发挥了越来越重要的作用,这其中和大数据、数据科学的兴起有不可分割的联系。学习数据库,可以说是每个从事IT行业的必修课。你学或不学,它就在那里;你想或...

3388
来自专栏数说戏聊

04-06章 过滤数据第4章 过滤数据第5章 高级数据过滤第6章 用通配符进行过滤

分析 这条语句从 products 表中检索两个列,但不返回所有行,只返回 prod_price 值为 3.49 的行,输出:

431
来自专栏深入浅出区块链技术

智能合约语言 Solidity 教程系列5 - 数组介绍

Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊、智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么

853
来自专栏Kevin-ZhangCG

Oracle学习笔记四

在写java程序中有集合的概念,那么在pl/sq中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据。

422

扫描关注云+社区