MySQL----------------(一)

    xiaoxiao2025-05-23  24

    存储引擎基于表,常用引擎InnoDB,MyISAM,Memory等

    操作系统一次取一页的数据,4k===================>局部性原理

    InnoDB一页的大小16kb

                                                                           表结构

    一行长度不能大于65535

    一页大小16384/1024       16kb

    COMPACT:处理行溢出的时候会处理,会存储部分真实数据+记录下一页的地址

    Dynamic:处理行溢出时,只记录真实数据存储在其他页的地址

     

    索引

    组织方式不同

    InnoDB:聚集   插入操作会根据主键进行排序

    MyISAM:堆表   

    B+tree:叶子结点用指针连起来

    聚集索引:主键和数据在一起

    B+tree树索引使用:全值索引,匹配左半边,

    如果走索引:辅助索引成本+回表查询

     

    创建索引的时候:索引选择性越大越好     选择性=基数/记录数,越接近一越好

    创建索引的时候:前缀索引              缺点:不能使用orderby,groupby,也不能使用覆盖索引

     

    打开优化器,可以查看condition_processing查看优化过程

     

     

    I/O:InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当我们想查询表中的记录时,需要先把数据或者索引加载 到内存中然后再操作。这个从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。

    读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作损耗的时间称之为CPU成本。  

    MySQL为每个表维护了一系列的统计信息, SHOW TABLE STATUS 语句来查看表的统计信息。 SHOW TABLE STATUS LIKE 'titles';  

    索引不存放null值,sql语句更改优化器指定使用索引

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    最新回复(0)