数据库
首页 > 数据库> > 数据库-mysql索引篇

数据库-mysql索引篇

作者:互联网

点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人。

文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。

mysql的索引类型?

mysql中有5种索引:普通索引、唯一索引、主键索引、组合索引、全文索引

//为book表的bookname字段创建了名为index_bookBookname的索引
create  index  index_bookBookname  on book(bookname) 
create  unique index  index_bookBookname  on book(bookname) 
create   index  index_bookBooknameAndAuthors  on book(bookname,authors) 
或者
create table book(
  id   int(20),
  bookname  VARCHAR(32) ,
  authors VARCHAR(32) ,
  content text,
  INDEX index_book (bookname,authors) 
) ;

mysql创建索引时如果是blob 和 text 类型,索引里面必须指定length,如:
create index index_book on book(content(25)) ;

组合索引必遵循最左前缀原则
利用索引中最左边的列集来匹配行,比如新建索引 (bookname,authors,info) 最左边为bookname字段,查询的字段若为(bookname)、(bookname,authors)、(bookname,authors,info)则会启用索引,若为(authors)、(authors,info)则不会启用索引,(bookname,info)只会用到bookname列

//使用全文搜索时,必须借助MATCH函数创建:
create  fulltext  index index_bookBookname  on book(bookname) 
create  fulltext  index index_bookBookname  on book(bookname,authors) 
select  * from book where match(bookname) against('万历十五年');
select  * from book where match(bookname,authors) against('万历十五年',"鲁迅");

主键索引又可以分为聚簇索引、非聚簇索引,它们的区别是什么?

谈谈sql的优化策略

mysql的explain分析sql执行情况

image

mysql索引为什么使用B+树而不是B-树(也称B树)?

OK,如果文章哪里有错误或不足,欢迎各位留言。

创作不易,各位的「三连」是二少创作的最大动力!我们下期见!

标签:index,数据库,authors,索引,book,mysql,bookname,select
来源: https://www.cnblogs.com/mofes/p/15221477.html