mysql 索引理解

索引简介

索引是帮助MySQL高效获取数据的数据结构,目的在于提高查询效率

索引类型

普通索引:最基本的索引,没有任何限制,用于加速查询。
    创建方法:
		a:建表时创建:
		CREATE TABLE mytable (name VARCHAR(32), INDEX index_mytable_name(name))
		b:建表后创建索引:
		CREATE  INDEX  index_mytable_name ON mytable(name)
		c:修改表结构
		ALTER TABLE mytable ADD INDEX index_mytable_name(name)
唯一索引:索引的值必须唯一,可以为空值。
    创建方法:
		a:建表时创建:
		CREATE TABLE mytable (name VARCHAR(32),  UNIQUE INDEX index_unique_mytable_name(name))
		b:建表后创建索引:
		CREATE UNIQUE INDEX index_unique_mytable_name ON mytable(name)
		c:修改表结构
		ALTER TABLE mytable ADD  UNIQUE INDEX index_unique_mytable_name(name)
主键索引:一种特殊的唯一索引,不允许有空值。
    创建方法:
		a:建表时创建:
		CREATE TABLE mytable (id INT(11) NOT NULL AUTO_INCREMENT, name VRACHAR(32), PRIMARY KEY (id) )
		b:修改表结构
		ALTER TABLE mytable.t1 ADD CONSTRAINT t1_pk PRIMARY KEY (id);
组合索引:多个字段上创建索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引遵循最左前缀集合。
   创建方法:
       a:建表时创建
	   CREATE TABLE mytable (id INT(11), name VARCHAR(32), INDEX  index_mytable_id_name('id','name'))
	   b:建表后,创建索引
	   CREATE INDEX index_mytable_id_name ON mytable('id','name') 
	   c:修改表结构
	   ALERT TABLE mytable ADD INDEX ndex_mytable_id_name (id,name)
全文索引:只要用来查找文本的关键字。
    创建方法:
  	  a:建表时创建
	  CREATE TABLE `article` (`id` int(11) NOT NULL AUTO_INCREMENT ,`title` char(250) NOT NULL ,`contents` text NULL ,`create_at` int(10) NULL DEFAULT NULL ,PRIMARY KEY (`id`),FULLTEXT (contents))
	  b. 建表后,直接创建索引
	  CREATE FULLTEXT INDEX index_article_contents ON article(contents);
      c. 修改表结构
      ALTER TABLE article ADD FULLTEXT INDEX index_article_contents (contents);

索引的优缺点

优点:提高数据检索的效率,降低数据库的IO成本。通过索引列对数据进行排序,降低数据库排序的成本,降低cpu消耗。
缺点:虽然提高了查询效率,但降低更新表的效率

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值