您当前的位置:首页  >> 学无止境 >> 数据后台

mysql数据库索引的几种类型及操作方法

发布时间:2015-11-19 14:35:42来源:原创文章作者:阿兵

索引是数据库进行快速搜索的关键。MySQL数据库索引的建立对于MySQL的高效运行是十分重要的。mysql数据库提供了多种类型的索引供不同情况下优化数据库查询速度。

MySQL提供多种索引类型供选择:   

  普通索引 

    创建所用的SQL:

    CREATE INDEX <索引的名字> ON tablename (列的列表); 

    ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表); 

    CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) ); 

  

  唯一索引(Unique索引)

     创建所用的SQL:

     CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表); 

     ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); 

     CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表));  

    在为某数据列创建索引的时候,如果能确定该数据列的值不会重复,那么应该考虑使用UNIQUE把它定义为一个唯一索引,这样会带来两个好处:1、简化MySQL对这个索引的管理工作,提高效率;2、MySQL会在插入新记录时,自动检查新记录的这个字段的值是否已经出现过了,如果是,MySQL将拒绝插入该条新记录。唯一索引可以保证数据记录的唯一性。

 

  主键索引  

    每个主键字段必须有一个索引,这个索引就是主键索引,它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建,记住:一个表只能有一个主键。主键索引使用PRIMARY关键字定义。 

    创建所用的SQL: 

    CREATE TABLE mytable(   ID INT NOT NULL,   name VARCHAR(16) NOT NULL,   PRIMARY KEY(ID)  );

 

 全文索引  

     MySQL支持全文索引和搜索功能。MySQL中的全文索引类型FULLTEXT的索引。  FULLTEXT 索引仅可用于 MyISAM表;他们可以从CHAR、 VARCHAR或TEXT列中作为CREATE TABLE语句的一部分被创建,或是随后使用ALTER TABLE 或 CREATE INDEX被添加。对于较大的数据集,将你的资料输入一个没有FULLTEXT索引的表中,然后创建索引, 其速度比把资料输入现有FULLTEXT索引的速度更为快。  

    创建所用的SQL: 

    CREATE TABLE `mytable` (`title` varchar(100) DEFAULT NULL,`body` text,

      FULLTEXT KEY `ft_title` (`title`),

      FULLTEXT KEY `ft_body` (`body`)

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


  联合索引(复合索引)

      对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a1,a2,a3). 可以支持a1 | a1,a2| a1,a2,a3  这 3种组合进行查找,但不支持 a2,a3进行查找 .当最左侧字段是常量引用时,索引就十分有效。

     创建所用的SQL: 

     CREATE index 索引名 on 表名(字段名1,字段名2)

关键词: mysql 数据库 索引
分享到:

栏目最新

点击排行