查某个库的所有索引信息

select t.TABLE_ID,t.NAME,INDEX_ID,i.NAMEfrom INNODB_SYS_TABLES t,INNODB_SYS_INDEXES i where t.table_id=i.table_id;

 PRIMARY, INDEX, UNIQUE 这3种是一类
PRIMARY 主键。就是 唯一 且 不能为空。
INDEX 索引,普通的
UNIQUE 唯一索引。不允许有重复。
FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。

1、普通索引  

  普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。

2、唯一索引

  普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。

如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

UNIQUE KEY是 唯一约束,不是索引,
索引是INDEX

值得注意的是往往需要唯一的也是作为索引用。

索引需要在creat时候另外添加。唯一 可不做索引。
索引就是占用一部分内存,加速搜索这个字段时候的效率 

唯一、索引是两个独立的概念。
唯一是表的属性,索引实际上是给表引擎添加了可索引依据