浅析MySQL各种索引
MySQL各种索引(由于是浅析大多都不刻意区分搜索引擎)
INDEX(普通索引):最主要的索引。没有不论什么限制
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
UNIQUE(唯一索引):与"普通索引"类似,不同的就是:索引列的值必须唯一,但同意有空值。
ALTER TABLE `table_name` ADD UNIQUE (`column`)
注:创建唯一索引的目的不是为了提高訪问速度,而仅仅是为了避免数据出现反复。
唯一索引能够有多个但索引列的值必须唯一,索引列的值同意有空值。
假设能确定某个数据列将仅仅包括彼此各不同样的值,在为这个数据列创建索引的时候就应该使用keywordUNIQUE。把它定义为一个唯一索引。
PRIMARY KEY(主键索引):它 是一种特殊的唯一索引,不同意有空值。
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
FULLTEXT(全文索引):仅可用于 MyISAM 表,针对较大的数据。生成全文索引非常耗时好空间。
ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
COMBINED(组合索引):为了很多其它的提高mysql效率可建立组合索引。遵循”最左前缀“原则。
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
使用索引应该知道的事:
1、尽管索引大大提高了查询速度。同一时候却会减少更新表的速度,如对表进行INSERT、UPDATE和DELETE。由于更新表时,MySQL不仅要保存数据。还要保存一下索引文件。
2、建立索引会占用磁盘空间的索引文件。普通情况这个问题不太严重,但假设你在一个大表上创建了多种组合索引,索引文件的会膨胀非常快。
3、索引仅仅是提高效率的一个因素。假设你的MySQL有大数据量的表,就须要花时间研究建立最棒的索引,或优化查询语句。
建索引之后你要保护索引良好的运行:
请參照保护索引要注意的问题这篇文字。
浅析MySQL各种索引的更多相关文章
- 【夯实Mysql基础】MySQL性能优化的21个最佳实践 和 mysql使用索引
本文地址 分享提纲: 1.为查询缓存优化你的查询 2. EXPLAIN 你的 SELECT 查询 3. 当只要一行数据时使用 LIMIT 1 4. 为搜索字段建索引 5. 在Join表的时候使用相当类 ...
- MySQL中索引和优化的用法总结
1.什么是数据库中的索引?索引有什么作用? 引入索引的目的是为了加快查询速度.如果数据量很大,大的查询要从硬盘加载数据到内存当中. 2.InnoDB中的索引原理是怎么样的? InnoDB是Mysql的 ...
- MySQL 联合索引详解
MySQL 联合索引详解 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c ...
- Mysql复合索引
当Mysql使用索引字段作为条件时,如果该索引是复合索引,必须使用该索引中的第一个字段作为条件才能保证系统使用该索引,否则该索引不会被使用,并且应尽可能地让索引顺序和字段顺序一致
- 如何正确建立MYSQL数据库索引
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...
- mysql高性能索引策略
转载说明:http://www.nyankosama.com/2014/12/19/high-performance-index/ 1. 引言 随着互联网时代地到来,各种各样的基于互联网的应用和服务进 ...
- MySQL创建索引语法
1.介绍: 所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引.总索引长度为 ...
- 浅析MySQL数据碎片的产生(data free)
浅析MySQL数据碎片的产生 2011-03-30 09:28 核子可乐译 51CTO 字号:T | T MySQL列表,包括MyISAM和InnoDB这两种最常见的类型,而根据经验来说,其碎片的产生 ...
- mysql使用索引优化查询效率
索引的概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度.在没 ...
随机推荐
- Send a WhatsApp Message programatically -- Tasker WhatsTasker
Here is My code snippet: Uri mUri = Uri.parse("smsto:+9876543210"); Intent mIntent = new I ...
- ASP.NET浏览器跨域
转载:http://www.cnblogs.com/alvinwei1024/p/4626054.html 什么是跨域? 访问同源的资源是被浏览器允许的,但是如果访问不同源的资源,浏览器默认是不允许的 ...
- java基础学习总结——Object类
一.Object类介绍
- error MSB8031: Building an MFC project for a non-Unicode character set is deprecated
vs2013编译VC++源码,错误: error MSB8031: Building an MFC project for a non-Unicode character set is depreca ...
- nyoj 164&&poj2084 Game of Connections 【卡特兰】
题意:将1~2n个数依照顺时针排列好.用一条线将两个数字连接起来要求:线之间不能有交点.同一个点仅仅同意被连一次. 最后问给出一个n,有多少种方式满足条件. 分析: ans[n]表示n的中的种类数. ...
- Android中关于项目中对Thread的管理(不是线程池)
背景 项目中对于一些并不复杂的耗时操作,比如计算,不频繁操作数据库等,因为没必要使用线程池,所以之前项目会直接使用new Thread的方式,时间一长,回头再看,原来new Thread之处已经很多了 ...
- UML:概要设计,用什么画我的类图?
背景 做过需求之后,很少使用 UML 画概要设计,这几天尝试的用了几个工具,最总还是选择了 VisualStudio. Edraw 详细信息很难编辑,如:签名. Viso 添加成员太麻烦了. Visu ...
- bat薪酬
三大互联网巨头公司,百度腾讯跟阿里如何划分级别?薪资待遇又有多少?除非身居其位,否则很难探知,但是等你到那个位置知道了,却又不能说,至少不能在公 开场合谈论.接下来就为大家揭秘,百度.阿里与腾讯内部的 ...
- 解决Sqoop报错Could not load db driver class: com.intersys.jdbc.CacheDriver
报错栈: // :: INFO tool.CodeGenTool: Beginning code generation // :: ERROR sqoop.Sqoop: Got exception r ...
- 通过Web启动本地应用程序
通过自定义协议在Web中启动本地应用程序 实例是打开本地安装的Word程序 注册自己的协议Windows Registry Editor Version 5.00 [HKEY_CLASSES_RO ...