文档章节

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单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习。 为了形象地对比两者,再建...

BearCatYN
2015/07/10
166
0
MYSQL索引分析和优化设计方案

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

有些服务器
2015/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
58分钟前
11
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
9
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
8
0
在PC上测试移动端网站和模拟手机浏览器的5大方法

总结很全面,保存下来以备不时之需。原文地址:https://www.cnblogs.com/coolfeng/p/4708942.html

kitty1116
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部