数据库

数据库 #

知识点 #

数据格式

  • 结构化数据:以规定的形式保存数据,数据可以直接拿来使用。通常一个数据只会出现在一个地方,所以更新数据时只要更新一个地方。
  • 非结构化数据:数据格式多种多样,所以使用前需要先进行预处理。
  • 半结构化数据:通常以XML或JSON格式保存,有一定扩展性。

数据库一览

  • SQL
    • 关系型数据库:通常支持事务,适合交易等有强一致性要求的业务。可以将关系交由应用系统维护来提升性能。
      • MySQL
  • NoSQL: Not Only SQL。NoSQL数据库通常无需人工干预即可实现动态扩展。
    • 文档型数据库:使用了半结构化数据,可以保存多列的同时保存关系(关系型数据库存在阻抗不匹配的问题),适合模式经常需要修改的情况。常用场景有用户评论、搜索、商品详情页等。
      • MongoDB、ElasticSearch(全文数据库)
    • 宽列数据库:每次读取可以只选取某些列而不是整行读取,适合据聚合查询和大数据分析。
      • Cassandra、HBase
    • 键值对数据库:适合简单存储,性能优先,频繁访问的情况。常用场景有TopN、临时保存等。
      • Redis、Memcached
    • 图形数据库:适合维护复杂关系(关系型数据库复杂关联查询会影响性能),推荐系统。常用场景有朋友关系、喜欢/购买的东西间的联系、出行路径规划、谷歌页面权重排名等。
      • Neo4j
    • 时序数据库:适合分析和推断结论,处理高频次的连续数据流。常用场景有物联网,传感器监测等。
  • Other
    • 应用内缓存:Caffeine、Ehcache、Guava Cache
    • 数据库中间件:Sharding-Sphere、MyCat、canal、TDDL

实际开发系统时一般选择混合持久化方案,根据系统功能需求同时使用多种数据库。

沪ICP备17055033号-2