zoukankan      html  css  js  c++  java
  • 007.mysql-mysql索引精讲

    mysql-mysql索引精讲

    索引的选择:过滤、关联字段、重复度低

    0.analyze

    analyze table t 命令,可以用来重新统计索引信息

    ANALYZE table gaoshuiwei

    1.mysql索引类型normal,unique,full text的区别是什么?

    normal:表示普通索引

    unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique

    full textl: 表示 全文搜索的索引。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

    总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。

    2.

    -- mysql删除索引
    ALTER TABLE `test`.`gaoshuiwei`  DROP INDEX `rid_id`;
    -- mysql创建索引  
    ALTER TABLE `test`.`gaoshuiwei` ADD INDEX `aaa_index`(`aaa`) USING BTREE COMMENT 'aa索引';

    3.查询数据

    无索引下全表扫描

     对于前面重复比较多的字符如何加索引--例如身份证号、手机号、邮箱等

    字符翻转,加前缀索引 ---不支持范围扫描、节省索引存储空间

    方法:字符串翻转  REVERSE(aaa)

    update gaoshuiwei set aaa_r  = REVERSE(aaa)

     加前缀索引


    alter table gaoshuiwei add index aaa_r_index( aaa(6));
    -- 查询
    EXPLAIN
    select * from gaoshuiwei where aaa = reverse('循环一般在存储过程和存储函数中使用110aaa4605')

    如何判断前缀前几位作为前缀索引--损失比例在5%以内可采取

    select count(distinct aaa_r )  as  L from gaoshuiwei
    54795
    
        select count(distinct left(aaa_r,3) )  as  L1 from gaoshuiwei
        500
        select count(distinct left(aaa_r,4) )  as  L1 from gaoshuiwei
        5000
        select count(distinct left(aaa_r,5) )  as  L1 from gaoshuiwei
        52716
        select count(distinct left(aaa_r,6) )  as  L1 from gaoshuiwei
        54795
  • 相关阅读:
    扩展DigitalClock显示日期+时间
    利用Handler定时更新Android UI
    CheckBox在表格中全选、部分选和反选
    jQuery实现表格间隔色
    Android中对话框(dialog)的使用
    The connection to adb is down, and a severe error has occured.
    struts2类型转化
    Android开发之旅:环境搭建及HelloWorld
    C/C++浮点数在内存中的存储方式
    用标签写登录界面
  • 原文地址:https://www.cnblogs.com/star521/p/13612819.html
Copyright © 2011-2022 走看看