数据库索引

使用索引的主要目的是为了提高从表中检索数据的速度。

由于数据存储在数据库表中,所以索引是创建在数据库表对象上的,由表中的一个字段或多个字段生成的键组成,这些键存储在数据结构(B-tree或哈希表)中,因此根据索引的存储类型,可以将索引分为B型索引和哈希索引。

B-tree和哈希索引(转):https://blog.youkuaiyun.com/lovezhaohaimig/article/details/80303613

Mysql一共支持6种索引:普通索引,唯一索引,全文索引,单列索引,多列索引和空间索引。

索引的创建有利有弊,可以提高查询效率,但是过多的创建索引会占用许多的磁盘空间。

以下情况下适合创建:

     (1)经常被查询的字段,即在where子句中出现的字段

     (2)在分组的字段,即在groupby子句中出现的字段

     (3)存在依赖关系的子表和父表之间的联合查询,即主键或外键字段

     (4)设置唯一完整性约束的字段

不适合:

     (1)在查询中很少使用的字段

     (2)拥有许多重复值得字段。

普通索引的创建(其他索引都是在普通索引上加修饰词):

1.创建表时创建普通索引:

    其格式就是INDEX|KEY +索引名(属性名)

   

    查看索引是否被使用:explain+查询语句,记得在此处\G后面不加分号,否则会报No query specified

2.在已经存在的表上创建索引:

     CREATE+INDEX+索引名+on+表名+属性名

     查看是否成功:show create table+表名+\G(后面不加分号)

 

此时:

创建和查看唯一索引
              (1)创建表时创建唯一索引(除了添加unique,其他没有区别)

                其格式就是 UNIQUE INDEX|KEY +索引名(属性名)

    (2)在已经存在的表上创建唯一索引

               CREATE+UNIQUE+INDEX+索引名+on+表名(属性名)

  (3)通过alter来创建唯一索引

             ALTER  TABLE +表名 +ADD + UNIQUE   INDEX|KEY +索引名(属性名)

创建和查看全文索引

    全文索引主要关联在数据类型为char,vachar和text的字段上,以便能够更加快捷的查询数据量较大的字符串类型的字段,(该索引只能在存储引擎为MyISAM的数据库表上创建)默认情况下,全文索引的搜索方式不区分大小写,但是如果全文索引所关联的字段是二进制数据类型,则区分大小写。

(1)创建表时创建全文索引

             格式为:FULLTEXT INDEX|KEY +索引名(属性名)

(2)在已经存在的表上创建全文索引

             CREATE+FULLTEXT +INDEX+索引名+on+表名(属性名)

(3)通过alter来创建全文索引

             ALTER  TABLE +表名 +ADD + FULLTEXT  INDEX|KEY +索引名(属性名)

创建和查看多列索引

所谓多列索引就是在创建索引时,关联的字段不是一个,而是多个字段

(1)创建表时创建多列索引

              格式为:INDEX|KEY +索引名(属性名,属性名,。。。。)

(2)在已经存在的表上创建多列索引

              CREATE+INDEX+索引名+on+表名(属性名,属性名,。。。。)

(3)通过alter来创建全文索引

            ALTER  TABLE +表名 +ADD + FULLTEXT  INDEX|KEY +索引名(属性名,属性名,。。。。)

 

删除索引

DROP+INDEX+索引名+on+表名

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值