传统数据库缺点
- 大多数将数据存储在硬盘中,读取写入qps不能太高
- 处理一列数据,也需要将一整行数据取出,IO成本过高
- 存储结构死板,必须以列为维度进行存取
- 在模糊查询或者全文检索上,支持的不是很好,只支持like等操作
- 不擅长梳理数据和数据间的联系
- schema扩展不方便,更改定义语句时会锁表(可通过pt-online-schema-change工具解决)
针对这几项缺点,相应的NoSql应运而生
几种类型的NoSql
- 以列为单位进行存取
举例:HBase
优点:
1.使用字典,可以实现较高的压缩率
2.在处理列维度数据上,有很好的性能 - K-V关系型数据
举例:Redis、MemCached
优点:
1.内存级别数据库,支持较高的并发操作
2.存储结构灵活,可以存储拥有数据结构的对象实例 - 文档型数据库
举例:MongoDB
优点:可存储Json、XML等自描述的数据
1.不受schema的约束
2.可以存储大量级且复杂的数据结构 - 全文检索型数据库
举例:ElasticSearch
优点:
1.使用倒排索引支持全文检索
网友评论