欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库索引

程序员文章站 2022-04-10 12:00:54
...

索引的含义和特点

索引是一个单独的、存储在磁盘上的数据库结构,包含着对数据表里所有记录的引用指针。

mysql中索引的存储类型有两种:BTREE和HASH

其中MyISAM和InnoDB存储引擎只支持BTREE索引;MEMORY/HEAP存储引擎可以支持HASH和BTREE索引。

索引的优点:

1.通过唯一索引可以达到库表的每行都是唯一性的

2.可以加快查询速度

3.可以加快表之间的连接

4.尤其在分组和排序中建索引可以显著提高性能

缺点:

1.创建和维护索引耗费时间

2.索引需要占用磁盘空间

3.对表进行insert、update、delete的时候,索引也会动态的维护。

索引的分类

普通索引和唯一索引

单列索引和组合索引

全文索引

空间索引

其中组合索引遵循最左前缀集合,比如你用a,b,c三个表字段作为组合索引,只有查询条件包含a时索引才会起作用。全文索引和空间索引只能在存储引擎为MyISAM的表中创建。

索引的设计原则:

1.索引不是越多越好

2.避免对经常更新的表建索引

3.数据量小的表不要使用索引

4.数据相同值多的不建议使用索引

5.能建唯一索引时优先使用唯一索引

6.频繁分组排序的字段上建索引

创建索引

新建表的时候创建索引

CREATE TABLE table_name [col_name data_type]

[UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY] [index_name] (col_name) [ASC | DESC]

FULLTEXT是全文索引、SPATIAL是空间索引只有MYISAM存储引擎支持。

数据库索引
            
    
    博客分类: mysql mysql索引
 

已经存在的表上创建索引

1.ALTER TABLE table_name ADD 

[UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY] [index_name] (col_name) [ASC | DESC]

 
数据库索引
            
    
    博客分类: mysql mysql索引
 

2.CREATE  [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name ON table_name 

 (col_name) [ASC | DESC]

 

查看索引

1.SHOW CREATE TABLE table_name

2.SHOW INDEX FROM  table_name

 
数据库索引
            
    
    博客分类: mysql mysql索引
 
数据库索引
            
    
    博客分类: mysql mysql索引
 

删除索引

1.ALTER TABLE table_name DROP INDEX index_name

2.DROP INDEX index_name ON table_name

 
数据库索引
            
    
    博客分类: mysql mysql索引
 

索引其他操作

explain也可以查看索引,以及查看索引性能


数据库索引
            
    
    博客分类: mysql mysql索引
 

组合索引最左前缀


数据库索引
            
    
    博客分类: mysql mysql索引
 
 

  • 数据库索引
            
    
    博客分类: mysql mysql索引
  • 大小: 27.7 KB
  • 数据库索引
            
    
    博客分类: mysql mysql索引
  • 大小: 47 KB
  • 数据库索引
            
    
    博客分类: mysql mysql索引
  • 大小: 28.7 KB
  • 数据库索引
            
    
    博客分类: mysql mysql索引
  • 大小: 35.5 KB
  • 数据库索引
            
    
    博客分类: mysql mysql索引
  • 大小: 45.5 KB
  • 数据库索引
            
    
    博客分类: mysql mysql索引
  • 大小: 27.5 KB
  • 数据库索引
            
    
    博客分类: mysql mysql索引
  • 大小: 53.2 KB
相关标签: mysql 索引