文档章节

mysql索引

itviewer
 itviewer
发布于 2015/05/24 00:44
字数 581
阅读 177
收藏 11

mysql索引类型

  • Normal
  • Unique
  • Full Text
  • 主键

为什么建索引

http://blog.csdn.net/adenfeng/article/details/5419354

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。


一个索引键名下有多个字段和一个字段有一个索引键名有什么不同

因为一个MYSQL查询语句只使用一个索引,当你这个语句的WHERE有两个字段作为条件的话,如果使用两个字段联合起来建立一个索引,性能和高得多。反之,如果是两个字段分别建立的索引,MYSQL只能使用其中一个,另外一个用顺序查询。


简单的说,索引就是排序的结果,
多列索引就是多列共同排序的结果.

例如在字段a,b,c上建了多列索引,其结果就是以a,b,c排序的,
a列是第一排序列,所以以a查询时可以用上该索引.
b,c列是第二,第三排序列,其顺序不一定是有序的,所以以b,c查询时无法使用该索引.

例如:假设存在组合索引 index(name,year),查询语句 SELECT * FROM multi_column_index WHERE name='hello' AND year='21'能够使用该索引。查询语句 SELECT * FROM multi_column_index WHERE name='world'也能够使用该索引。但是,查询语句 SELECT * FROM multi_column_index WHERE year='22'不能够使用该索引,因为没有组合索引的引导列,即,要想使用year列进行查找,必需出现name等于某值。

如何优化索引

  • 经常检查系统使用的sql查询,对常用的where关键字和order by关键字建立索引或联合索引
  • 使用sql分析命令explain,检查查询效果

© 著作权归作者所有

共有 人打赏支持
itviewer
粉丝 16
博文 218
码字总数 44686
作品 0
海淀
技术主管
私信 提问
MySQL 索引选择原则分析(二)

2:MySQL索引选择规则(唯一索引查询) studentsorigin表中只有主键,没有建立索引。 select id, name from studentsorigin; 根据MySQL 索引选择原则分析(一)2.1来分析,所以只能是全表扫描...

tara_qri
2015/10/14
24
0
SQL基础-DDL数据定义语言

SQL数据定义语言-DDL语句 DDL语句部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。 语句 释义 CREATE DATABASE 创建新数据库 ALTER DATA...

ZHAO_JH
08/10
0
0
MySQL专题9之MySQL索引、MySQL临时表、MySQL复制表

1、MySQL索引 - MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 - 打个比方,如果合理的设计并使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索...

极客微信条
2017/11/19
0
0
MYSQL索引分析和优化设计方案

一、什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时 MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求...

有些服务器
2015/11/02
0
0
MySQL Index详解

①MySQL Index 一、SHOW INDEX会返回以下字段 1、Table 表的名称。 2、 Non_unique 如果索引不能包括重复词,则为0,如果可以则为1。 3、 Key_name 索引的名称 4、 Seqinindex 索引中的列序列号...

雾妄
2016/12/22
10
0

没有更多内容

加载失败,请刷新页面

加载更多

storm 环境搭建

1.下载解压 下载地址:http://storm.apache.org/downloads.html

MrPei
21分钟前
1
0
Python Base - 读写文件,字符串拼接,单引号

字符转义 读写文件cvs 字符串拼接,替换 import csvcsv_file_name = 'cardbin.csv'# insert into `card_bin_code` (name_of, code_of, card_no_prefix, bank_code) values ('中国银行......

园领T
22分钟前
1
0
基于JQUERY BOOTSTRAP 最简单的loading遮罩层

<%--loading遮罩层--%><div class="modal fade" id="loadingModal" backdrop="static" keyboard="false">   <div style="width: 200px;height:20px; z-index: 20000; position: abs......

颖辉小居
23分钟前
1
0
springboot+kafka

1,首先springboot对kafka的支持也很好,同样是在配置文件中配置好参数,然后就可以直接使用。先说一下,很简单,,,不要怕 2,我用的依赖是 <dependency> <groupId>org.springframewor...

我真是小菜鸡
27分钟前
3
0
webservice动态客户端自我记录备份(spring boot)

动态客户端相比直接调用webservice的客户端代码要简单很多,但实际上很多工作是java自己替我们做掉了。简单记录一下内容,以备后续使用: pom文件只需要引入: <!-- CXF webservice --><de...

checkboxMan
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部