//2015年5月1日
一、索引
聚集索引、非聚集索引
前者B树叶子节点包含数据,后者叶子节点包含数据地址
聚集索引优点:提升IO密集负载性能;缺点:插入代价高
索引缺点:维护索引耗时;占用空间大
建索引须知:建在where,group by,排序等列上;不建在性别等少数类别的列上
建索引不一定加速:索引没有查询所需字段
一年后DB变慢了:答题方向是cpu、磁盘、内存
二、为什么有Nosql
增加字段需要-->无格式
高并发需要-->转向内存
横向拓展需要-->以前是分库分表
关键:传统数据库需要“关系”,所有表存在同一台服务器中,是一个单机系统。
而不使用关系,每条数据独立存储
Nosql不需要:数据库一致性要求、读写的实时性、复杂sql查询
三、Nosql的shard(一致性哈希)
复制,横向拓展,只支持更多的读请求;
分片,支持更多的读、写请求;
如果把日期设为分片,则不能享受并发性的写请求;
四、mongodb与redis
完全不同的东西。
mongodb:最像关系型数据库的nosql。相比redis,只是缓存了热点数据在内存
redis:in-memory;丰富的数据结构;只要是为了并发性;一般作为缓存
五、数据库的引擎
六、数据库的锁