一句话说明

来源:互联网 发布:xmind是什么软件 编辑:程序博客网 时间:2024/05/29 13:57

索引

     通过数据的冗余和预计算,以减少io次数和逻辑判断的消耗,最终提高查询的速度。

索引的副作用

     索引的加载、修改,会带来额外的IO和锁的消耗。

位图索引

位图索引本质上是列存储,对于取值离散范围较小的列,每个值存一个位图。恰好满足了三星索引的第三星要求,查询满足满足特定列某个取值的主键(例如所有性能都为男性的学生的ID),其数据全部都在索引之中。

堆表vs索引表

索引表在经过大量插入删除后,会存储在老化问题,既数据块在磁盘上分布不够连续,二是离散的。

堆表,数据块本省不存在老化问题,但是如果对表上的索引较多,会插入删除时,需要锁定、修改对应的索引块,效率比较低。索引表的二级索引是间接索引,不存在该啥问题。

协程

     把cpu的调度和上下文切换的工作,交给程序员控制的应用代码,而不是OS内核或者虚拟机,主要应用于RPC调用比较多的场景。

     补充:能在变成语言级别实现的是一种比较优雅的方式,例如golang,lua;c语言的协程实现非常生涩;

cpu cache

    通过一个hash映射的方法,将memory地址空间映射为cache的地址空间,关键问题是:提高hash表的空间利用率,减少hash冲突,均匀hot key的分布以减少cache miss。

Bloom Filter

    通过多维hash的方式减少hash冲突,只记录原始key的很小一部分(位图)以提高空间利用率。

spin lock

     忙等非睡眠锁,当CPU轮询忙等的时间远远小于进程/线程上下文切换时间时,it work。


0 0
原创粉丝点击