• mysql索引简介


    #查询数据表索引
    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 索引。
    在使用索引的时候,须要注意上面的这些限制,尤其是要注意无法使用索引的情况,因为这很容易造成极大的性能隐患。

  • 相关阅读:
    Java实现 N的阶乘
    Java实现 N的阶乘
    Java实现 N的阶乘
    Java实现 N的阶乘
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Java实现 洛谷 P1015 回文数(N进制回文数)
    Windows线程生灭(图文并茂)
  • 原文地址:https://www.cnblogs.com/robertsun/p/5501354.html
Copyright © 2020-2023  润新知