mysql索引简介

it2022-05-05  144

#查询数据表索引SHOW INDEX FROM api_video_info;  SHOW INDEX in api_video_info;  #删除索引DROP index index_api_video_info_url ON api_video_info;#重建索引#在常规的数据库维护操作中经常使用。在数据库运行了较长时间后,索引都有损坏的可能,这时就需要重建。对数据重建索引可以起到提高检索效率。REPAIR TABLE api_video_info QUICK;#在url字段上创建普通索引CREATE INDEX index_api_video_info_url ON api_video_info(url);innodb 单列索引长度不能超过767 bytes,联合索引限制是3072 bytes。对于创建innodb的组合索引中,如果各个列中的长度有单个超过767 bytes,也会创建失败;myisam 单列索引长度、所创建的复合索引长度和都不能超过1000 bytes,否则会报错,创建失败。#5.5以后,开始支持4个字节的uutf8。255×4>767, 于是增加了一个参数叫做 innodb_large_prefix。这个参数默认值是OFF。当改为ON时,允许列索引最大达到3072。show variables like 'innodb_large_prefix';另外不同字符集占用不同字节:latin一个字符占1 bytes,utf8存储一个字符占3 bytes, gbk存储一个字符2 bytes#索引限制1) MyISAM存储引擎索引键长度的总和不能超过1000字节;2) BLOB和TEXT类型的列只能创建前缀索引;CREATE INDEX index_api_video_info_url ON api_video_info(url(200));#3) MySQL 目前不支持函数索引;4) 使用不等于(!= 或者 <>)的时候,MySQL 无法使用索引;5) 过滤字段使用了函数运算(如abs(column))后,MySQL无法使用索引;6) Join 语句中 Join 条件字段类型不一致的时候,MySQL 无法使用索引;7) 使用LIKE操作的时候如果条件以通配符开始(如’%key…’)时,MySQL无法使用索引;8) 使用非等值查询的时候,MySQL 无法使用 Hash 索引。在使用索引的时候,须要注意上面的这些限制,尤其是要注意无法使用索引的情况,因为这很容易造成极大的性能隐患。

转载于:https://www.cnblogs.com/robertsun/p/5501354.html


最新回复(0)