在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令 MySQL的查询和运行更加高效。索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 
1、普通型索引 
这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建: 
(1)创建索引,例如CREATE INDEX 索引的名字 ON tablename (列名1,列名2,...); 
(2)修改表,例如ALTER TABLE tablename ADD INDEX 索引的名字 (列名1,列名2,...); 
(3)创建表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX 索引的名字 (列名1,列名 
2,...) ); 
2、唯一索引 
这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。唯一性索引可以用以下几种方式创建: 
(1)创建索引,例如CREATE UNIQUE INDEX 索引的名字 ON tablename (列的列表); 
(2)修改表,例如ALTER TABLE tablename ADD UNIQUE 索引的名字 (列的列表); 
(3)创建表的时候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE 索引的名字 (列的列 
表) ); 
3、主键 
主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。如果你曾经用过AUTO_INCREMENT类型的列,你可能已经熟悉主键之类的概念了。主键一般在创建表的时候指定,例如“CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) ); ”。但是,我们也可以通过修改表的方式加入主键,例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表); ”。每个表只能有一个主键。 (主键相当于聚合索引,是查找最快的索引) 
4、单列索引和多列索引 
索引可以是单列索引,也可以是多列索引。 
(1)单列索引就是常用的一个列字段的索引,常见的索引。 
(2)多列索引就是含有多个列字段的索引 
alter table student add index sy(name,age,score); 
索引sy就为多列索引,多列索引在以下几中情况下才能有效: 
select * from student where name='jia' and age>='12' //where条件中含有索引的首列字段和 
第二个字段 
select * from student where name='jia' //where条件中只含有首列字段 
select * from student where name='jia' and score<60//where条件中含有首列字段和第三个字 
段 
总结:多列索引只有在where条件中含有索引中的首列字段时才有效 
5、选择索引列 
应该怎样选择索引列,首先要看查询条件,一般将查询条件中的列作为索引

mysql 索引分类的更多相关文章

  1. mysql 索引分类以及用途分析

    MySQL索引分为普通索引.唯一性索引.全文索引.单列索引.多列索引等等.这里将为大家介绍着几种索引各自的用途. 一. MySQL: 索引以B树格式保存 Memory存储引擎可以选择Hash或BTre ...

  2. mysql索引分类

    mysql索引分类 一.总结 一句话总结: 主键索引:设定为主键后数据库会自动建立索引,innodb为聚簇索引 单值索引:一个索引只包含单个列,一个表可以有多个单列索引:CREATE INDEX id ...

  3. mysql索引分类及实现原理

    索引分类:主键索引.唯一索引.普通索引.全文索引.组合索引 1.主键索引:即主索引,根据主键pk_clolum(length)建立索引,不允许重复,不允许空值 ALTER TABLE 'table_n ...

  4. MySQL索引分类及相关概念辨析

    本文链接:https://www.cnblogs.com/ibigboy/p/16198243.html 之前的一篇<MySQL索引底层数据结构及原理深入分析>很受读者欢迎,成功地帮大家揭 ...

  5. mysql索引分类及注意事项

    MYSQL索引主要分为四类:主键索引,普通索引(聚合,非聚合),唯一索引,全文索引 全文索引,主要是针对对文件,文本的检索, 比如文章, 全文索引针对MyISAM有用. 索引的原理:利用二叉树(哈希表 ...

  6. Mysql索引分类和索引优化

    一. MySQL: 索引以B树格式保存 Memory存储引擎可以选择Hash或BTree索引,Hash索引只能用于=或<=>的等式比较. 1.普通索引:create index on Ta ...

  7. MySQL索引分类和各自用途

    一. MySQL: 索引以B树格式保存 Memory存储引擎可以选择Hash或BTree索引,Hash索引只能用于=或<=>的等式比较. 1.普通索引:create index on Ta ...

  8. [DB] MySQL 索引分类

    按数据结构 B树索引 数据位于叶子节点,到任何一个叶子节点的距离相同,一般不超过3-4层 B+树索引:每个叶子节点除了数据还存放前后叶子节点的指针,方便快速检索,是InnoDB采用的索引结构 Hash ...

  9. MySQL索引的分类、结构、使用场景

    MySQL索引分类 1.主键索引:设定为主键后数据库会自动建立索引,innodb为聚簇索引 语法: 随表一起建索引: CREATE TABLE customer (id INT(10) UNSIGNE ...

随机推荐

  1. web.xml 详细介绍(转)

    web.xml 详细介绍 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧 ...

  2. Spring MVC 4.2 增加 CORS 支持 Cross-Origin

    基于XML的配置: <mvc:cors> <mvc:mapping path="/api/**" allowed-origins="http://dom ...

  3. Java入门教程总目录

    Java入门教程总目录 持续更新中... 1.Java常识汇总 2.Java框架对比 3.Java技术路线 4.Java编码规范 5.Java环境变量配置 6.枚举 7.操作符 12.定时任务

  4. 9、java中的final关键字

    /* final : 最终.作为一个修饰符, 1,可以修饰类,函数,变量. 2,被final修饰的类不可以被继承.为了避免被继承,被子类复写功能. 3,被final修饰的方法不可以被复写. 4,被fi ...

  5. 【freemaker】之自定义指令<#macro>

    测试代码 @Test public void test07(){ try { root.put("name", "张三"); freemakerUtil.fpr ...

  6. python--ulipad控制台中文输出乱码

    ulipad用起来顺手,而不尽人意的地方时,它不能正确输出中文.而且有人指出这和文件的编码没关系,所以将”设置“选项里”缺省文档编码“修改为”utf-8“也无济于事.为了解决这个问题,我在网上搜了搜, ...

  7. TMS320C54x系列DSP指令和编程指南——第2章 通目标文件格式介绍

    第2章 通用目标文件格式介绍 汇编器和连接器可以产生在TMS320C54x器件上执行的目标文件,这些目标文件的格式称为通用目标文件格式(COFF).采用COFF格式有利于程序的模式化编程,因为它支持用 ...

  8. 写了一个自动打包并发布到tomcat的脚本

    #!/bin/sh #获取tomcat的PID tomcat_pid=` | awk '{print $1}'`#判断tomcat是否结束,未结束则kill掉 if [ -z $tomcat_pid ...

  9. silverlight 鼠标事件处理

    托管代码注册鼠标事件 不需要再.xaml中声明注册事件. .xaml <Ellipse Name=" Fill="Orange" Canvas.Top=" ...

  10. css实现绝对定位元素居中

    前端我们时常需要封装一些弹出框,这些弹出框大小都不能确定,多半是用js实现居中. 现在有了css3可以不用js了. .box{ background-color: blueviolet; width: ...