MySQL使用总结

索引 建立索引 索引的基数相对于数据表行数较高,工作效果最好。说明列中不同值较多,区分度的公式是 COUNT(DISTINCT col) / COUNT(*)。查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描,惯用的百分比界线是“30%”, 通过SHOW STATUS LIKE ‘Handler_read%’;查看索引的使用情况 Ha …

阅读全文

volatile与内存屏障总结

一. 内存屏障 Memory Barrior 1.1 重排序 同步的目的是保证不同执行流对共享数据并发操作的一致性。在单核时代,使用原子变量就很容易达成这一目的。甚至因为CPU的一些访存特性,对某些内存对齐数据的读或写也具有原子的特性。但在多核架构下即使操作是原子的,仍然会因为其他原因导致同步失效。 首先是现代编译器的代码优化和编译器指令重排可能会影响到代码的执行顺序。 其次还有指令执行级别的乱序 …

阅读全文

Zookeeper系统设计的缺陷

之前总结过Zookeeper的各种设计优点,但是这个系统的缺陷与优点同样突出,本文就是结合自己的使用经验,业界给出的评价对ZK的缺点进行的归纳,一方面归纳使用表现上的不足,另一方面根据个人经验总结出系统本身功能设计时的就存在的缺陷。同时也思考了相应对策与改进的办法,算是本人对ZK设计的完整的思考总结吧。最后还关注了下etcd这个后起之秀的设计,看看它是否已经弥补了ZK的不足,能否担当后继者。 1. …

阅读全文

去中心化交易所现状与实现

据了解当前数字货币交易所已经超过500家,目前依旧是井喷状态。大家耳熟能详的都是中心化交易所,这些交易所的交易流程与模式和大家日常使用的证券交易所模式一致。中心化交易所在技术实现上是有传统成熟解决方案的,即使面对海量大并发实时交易,依旧可以给用户提供很好的服务体验。庞大的用户量和交易量,也带来了足够的交易深度,提供了充分的流动性。但是中心化交易所也面临有很多问题:4 人为因素——中心化信用背书,会 …

阅读全文