MySQL索引

来源:互联网 发布:编程是干什么的 编辑:程序博客网 时间:2024/06/03 20:23
explain
sql index
where order by select
using filesort
using temp table





1、索引:
    是一钟数据结构,能够提高数据的检索速度
    索引也存储在硬盘上,也是文件
    1,3,2,5,7,9,2,5,6
    
    全表扫描
    
    索引特点:排好序,快速查找,数据结构
    
    Index_type
    
    -----------
    BTREE
    
    BTree:Balance tree
    
    Hash 索引 crc16
    Memory存储引擎,内存数据表存储引擎
    特点:查找高效,理论上面只需要查找一次
    缺点:会产生地址冲突,如果地址冲突比较多的话,索引的维护就比较麻烦,代价很高
    局限:
        1、hash索引只能用于等值比较,也就是范围查找用不上索引,等值比较包含=,<=> ,in()
        2、无法使用索引最左前缀列原则
        create index idx_id_name(id name)
        where id=1
    
    因为mysql主要推荐的是myisam,innodb表存储引擎
    
    聚集索引和非聚集索引原理(数据的物理存储结构)
    
    非聚集索引:
    innodb_file_per_table
    
    innodb btree
    *.idb:存储索引的值,也会存储其他普通字段
    
    innodb 主键,非空唯一,默认innodb会自己维护一个唯一id rowid
    
    索引的优缺点:
    优点:提高数据检索速度,降低磁盘IO读写
            因为数据是排好序的,这样就降低了数据排序的运算成本,从而降低了CPU的消耗
    缺点:索引存储在磁盘上面,所以占空间
            字段更新会有性能损耗,因为更新索引字段的时候不仅要更新数据而且需要更新索引树

            所以说,如果字段更新比较频繁,那么这个字段就不适合建立索引



0 0
原创粉丝点击