聚集索引,全文索引,哈希索引

    关于逻辑删除与物理删除:从业务层面上前者还带有追溯功能,此外对于Innodb来讲,它的存储是物理上连续的,那么每次进行删除操作后都要进行元素的移动,这点与ArrayList相近,所以在并发较大的情况下,逻辑删除的表应该比物理删除的查询更快

    查询字段按所需即可,勿要图省事,即使方法多一些,为性能也是可以,另外查询过多字段在rpc环境下报文也会变大增加带宽压力,主要原则就是减少回表操作,会增加随机io

    哪些列才需要建立索引:排序,分组,查询用的列才建索引

    其他: 1、索引条件下推
    2、索引类型要一致,字符串要有引号,否则等价于对索引列做函数转换
    3、索引合并中的交集合并要求二级索引一定要等值匹配,因为相等的值,btree按索引列排序后,又会按 主键作为第二排序条件
    4、索引合并还有union合并,sort union合并,后者较不同的是二级索引查询后,先将主键排序后再进行合并

    三大特性: 自适应哈希索引,缓冲池,双写缓冲区

    双写缓冲区:当事务commit后,会先往双写缓冲区写入脏页信息(缓冲区为磁盘,非内存,采用fsync强制写入),再将缓冲区的内容写入真实的数据页,完成后丢弃缓冲区内容,实现了一致性和持久性

    Redo:重做日志,用于事务提交前的操作记录,只记录写入操作,而非数据
    格式为类型,表空间ID,页号,内容(修改页的偏移量,修改的值)
    刷盘时机有三种。定时刷盘、提交后刷盘,日志容量满一半后刷盘