MySQL表设计之索引

一、MySQL中的索引分类:

MySQL目前主要有以下几种索引类型:

1.普通索引(index)
2.唯一索引(unique)
3.主键索引(primary key)
4.组合索引
5.全文索引 (fullText)

二、多个单列索引和联合索引的区别

https://blog.csdn.net/Abysscarry/article/details/80792876

三、索引命令

我们知道,有时候系统部署使用了第三方云服务,可能也是购买了云数据库。云数据库的访问不像在内网(局域网)开发环境一样方便,通过navicat等可视化管理工具就可以轻松进行数据或索引的查询、修改。云服务器一般都是通过堡垒机登录,然后再访问云数据库,一般都是通过命令实现登录。所以,掌握sql命令至关重要。

mysql索引的命令操作:

  1. 查询表索引

    show index from table_name;
    
  2. 新增表索引

	普通索引:  create index index_name on table_name (column_list) ;
	唯一索引: create unique index index_name on table_name (column_list) ;
  1. 删除表索引
	drop index index_name on table_name ;
	alter table table_name drop index index_name ;
  1. 修改表索引
	创建(单个)普通索引: alter table table_name add index index_name (column_list) ;
	创建(多个)普通索引:alter table table_name add index index_name1(column_list1),add index index_name2(column_list2);
	创建唯一索引: alter table table_name add unique unique_name (column_list) ;
	创建pk:      alter table table_name add primary key (column_list) ;

	删除普通索引: alter table table_name drop index index_name ;
	删除pk:      alter table table_name drop primary key ;

说明:

table_name:索引所在的表名
column_list: 指出对哪些列进行索引,多列时各列之间用逗号分隔。
index_name:索引名可选,缺省时,MySQL将根据第一个索引列赋一个名称。

alter table允许在单个语句中更改多个表索引,因此可以同时创建多个索引。

	alter table `tbl_feeds`  
	add index `ix_feeds_username` (`username`) ,  
	add index `ix_feeds_userid` (`userid`) ,  
	add index `ix_feeds_content` (`content`) ,  
	add index `ix_feeds_score` (`score`) ,  
	add index `ix_feeds_weight` (`weight`) ;  

四、字段变更与索引

如果从表中删除某列,则索引会受影响。

  • 对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。
  • 如果删除组成索引的所有列,则整个索引将被删除。

你可能感兴趣的:(MySQL,Java,数据库)