浅析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数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度.在没 ...
随机推荐
- PostgreSQL控制台以竖行显示
\x select * from user; 这个和MySQL的有点区别,在查询之前使用\x进行显示的开启 注意:只需要用一次即可,以后的查询都是以竖行进行显示.
- 事件冒泡与捕获&事件托付
设想这样一种情况 一个div里面有个span元素 ,当鼠标单击span时,这个事件算是谁的? div还是span? 准确的说两个都触发了,这种认可大家都允许,事实就是这种, 第二个问题来了,这个事件 ...
- linux(系统centos6.5)常用命令总结
ls -al 列出当前目录下的所有文件和子目录 用户在登录Linux时由/etc/passwd文件来决定要使用哪个shell,用户使用的shell被列于每行的末尾(/bin/bash) ls -F在 ...
- winform datagridview 打印
转载:http://www.cnblogs.com/Irving/archive/2012/10/12/2721666.html c#实现打印功能 http://www.cnblogs.com/zhc ...
- memcached-session-manager配置
原文地址: http://chenzhou123520.iteye.com/blog/1650212 声明:本篇文章是根据memcached-session-manager官方配置方法wiki页面翻译 ...
- duplicate symbol _main in: / linker command failed with exit code 1
duplicate symbol _main in: /Users/mb467/Library/Developer/Xcode/DerivedData/barChartDemo-gevlnavnpan ...
- Selenium2+python自动化53-unittest批量执行(discover)
前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...
- Iptables静态防火墙基础教程
文章目录检查Iptables是否安装Iptables相关的文件配置Iptables规则自定义规则保存规则 Iptables对于刚入门Linux的新手都比较难理解和配置.但是如果你掌握了其中的诀窍,你就 ...
- s:select 标签中list存放map对象的使用
1.XXXAction.java private List<Map<String, String>> maptest = null; public List<Map< ...
- Google Ads原理
Google AdSense广告会根据访问者的地理IP,显示不同的广告,因为adwords里面有相应的设置,有些广告商只想把广告显示给某一地理区域的客户.另一方面就是同一个网站,你在日本和美国会看到日 ...