年前看了这本书《大规模Web服务开发技术》,当时给的评价是:
很好,让我这个渣渣看的很感动,数据翔实,经历可靠,翻译的也不错,我给 4.2 分
现在经历过 Python / Django / 烂代码的阵痛,开始有更多的想法, 在整理这些粗糙的想法之前,我又把这本书翻了一遍,写个流水帐读书笔记。
《大规模Web服务开发技术》@豆瓣: http://book.douban.com/subject/6758780/
小规模 / 大规模 / 超大规模的侧重点各不相同:保持扩展性/保持冗余/低成本运维/开发合作方便
内存快,磁盘慢,IO 速度的差异
索引,B 树(是一颗平衡树,log n 速度查找,顺序读取,插入,删除) / B+ 树(节点只保存子节点指针,叶子保存数据)
使用 MySQL 索引的语句:
多个查询时候要使用复合索引,每次查询只会走单一一个索引。
感受算法 log n, 线性的差距。
正则到 Trie
逆向索引
调优的意义:「找出负载原因并去除」
负载的含义:等待 CPU / IO 资源的进程数。 知道了负载还要知道如何看 CPU 还是 IO 负载。
队列系统:
DB 类型:
文件系统:
缓存系统:
计算集群: