常见的NoSQL数据库常见分类:Key-Value
- Redis|SSDB Document
- MongoDB|Elasticsearch|Solr 列存储
- HBase 图像关系
- Neo4j 等.和关系数据库不同,NoSQL不同种类产品之间不可相互替换.
-
行
存储特点-RDBMS
ID | name | password | age | sex | address |
---|---|---|---|---|---|
1 | zhangsan | 123456 | 18 | true | 北上地 |
2 | lisi | 123456 | 20 | null | 北京朝阳 |
3 | wangwu | 123456 | null | null | null |
4 | zhaoliu | 123456 | null | false | null |
思考:
select id,name,passowrd from t_user where name='zhangsan' and password='#'
-
按照name和 password索引快速定位当前记录
-
数据库底层加载id/name/password/age/sex/address
-
进行投影过滤出id/name/password
从上面过程不难看出age/sex/address的读取过程是多余的,这一部分IO的读取对于系统而言浪费.- IO利用率低;其次关系型数据库由于不支持稀疏存储(null值不存储),导致null值也会占用磁盘空间,给系统带来磁盘空间的浪费-磁盘利用率低.
-
解决之道(列共现性问题)
t_user_base
id | name | password |
---|---|---|
1 | zhangsan | 123456 |