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/
如需转载,请注明出处!!!
MySQL 关于索引那点事的更多相关文章
- 【夯实Mysql基础】MySQL性能优化的21个最佳实践 和 mysql使用索引
本文地址 分享提纲: 1.为查询缓存优化你的查询 2. EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4. 为搜索字段建索引 5. 在Join表的时候使用相当类 ...
- 小白学习mysql之索引初步
导语 索引在数据库中的地位是及其的重要,同时要想完全的掌握索引并不是一件容易的事,需要对数据的查询原理以及计算机操作系统有深刻的认识,当然相关的算法和数据结构也是必须的.因此,这篇文章感到了一些压力, ...
- ySQL性能优化的21个最佳实践 和 mysql使用索引
MySQL性能优化的21个最佳实践 和 mysql使用索引 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 ...
- 浅析MySQL各种索引
MySQL各种索引(由于是浅析大多都不刻意区分搜索引擎) INDEX(普通索引):最主要的索引.没有不论什么限制 ALTER TABLE `table_name` ADD INDEX index_na ...
- 【转】【备忘录】MySQL性能优化的21个最佳实践 和 mysql使用索引
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...
- MySQL性能优化的21个最佳实践 和 mysql使用索引【转载】
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...
- MySQL的索引优化,查询优化
MySQL逻辑架构 如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器.下图展示了MySQL的逻辑架构图. MySQL逻辑架构,来自:高性能MySQL My ...
- Mysql资料 索引
目录 一.介绍 什么是索引? 为什么要有索引呢? 二.索引的原理 原理 磁盘IO与预读 索引的数据结构 b+树的查找过程 b+树性质 三.索引管理 MySQL的索引分类 各索引应用场景 索引类型 操作 ...
- MySQL中索引和优化的用法总结
1.什么是数据库中的索引?索引有什么作用? 引入索引的目的是为了加快查询速度.如果数据量很大,大的查询要从硬盘加载数据到内存当中. 2.InnoDB中的索引原理是怎么样的? InnoDB是Mysql的 ...
随机推荐
- Javascript Ajax异步读取RSS文档
RSS 是一种基于 XML的文件标准,通过符合 RSS 规范的 XML文件可以简单实现网站之间的内容共享.Ajax 是Asynchronous JavaScript and XML的缩写.通过 Aja ...
- HDU 1242 Rescue (广搜)
题目链接 Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The priso ...
- Linux dig命令
dig(Domain Information Groper),和nslookup作用有些类似,都是DNS查询工具 1.dig命令格式 dig @dnsserver name querytype 如果你 ...
- 工具_HBuilder工具使用技巧
https://www.cnblogs.com/xiaohouzai/p/7696152.html
- scrapy 爬虫踩过的坑(II)
同事写了个爬虫,逻辑上看着没什么问题,但是一直报错:Request url must be str or unicode…… 打印了一下url 和url 的类型,确实是 unicode 懵逼…… 打印 ...
- 未来人类T5 安装win10,ubuntu双系统
1.首先确保win10已经安装,u盘中已刻录好系统,下载好英伟达最新驱动保存在u盘中,压缩100g的磁盘空间给ubuntu. 2.设置双显卡模式,重启时按F7选择进入u盘启动. 3.进入安装界面,选择 ...
- 某大型网络社区传播性XSS分析
某大型网络社区传播性XSS分析 这个XSS存在于天涯某个不起眼的子论坛,通过发布新帖子可以触发. 漏洞分析 论坛针对XSS有一定过滤措施,例如转义单双引号,过滤左右尖括号等等.所 ...
- 20165230 2017-2018-2 《Java程序设计》第8周学习总结
20165230 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 第十二章 java多线程机制 一个进程在其执行过程中,可产生多个线程.线程是比进程更小的执行 ...
- Python标准库内置函数complex介绍
from:http://www.jb51.net/article/57798.htm 本函数可以使用参数real + imag*j方式创建一个复数.也可以转换一个字符串的数字为复数:或者转换一个数字为 ...
- Java集合Map与其子类回顾
接10月12号昨天的笔记,今天继续回顾集合中的Map集合. 一.集合工具操作类Collections 问题:collection和collections的区别? 1.collection是单列集合的顶 ...