🐬

SQLとNoSQLの違い

2024/04/02に公開
SQL NoSQL
データ形式 構造化データ 非構造化データ/半構造化データ
データベースの種類 リレーショナルデータベース キーバリューストア、ドキュメントストア、グラフデータベースなど
データ操作言語 SQL 独自言語
トランザクション処理 適している 適していない場合が多い
スケーラビリティ 比較的低い 高い
顧客情報、商品情報など SNSの投稿、IoTデバイスのデータなど
言語 MySQL,PostgreSQL,Oracle Database,Microsoft SQL Server キーバリューストア:Redis,Memcached
ドキュメントストア: MongoDB, Elasticsearch
グラフデータベース: Neo4j, Apache TinkerPop

用語解説

DBにおける構造化データと非構造化データの違い

https://zenn.dev/btc/articles/240402_db_structured_data

キーバリューストア、ドキュメントストア、グラフデータベース

https://zenn.dev/btc/articles/240402_nosql_db

スケーラビリティ

SQLのスケーラビリティ

  • 垂直方向: サーバーのCPU、メモリ、ストレージを増強することでスケールアップできる
  • 水平方向: シャーディングと呼ばれる技術を用いて、複数のサーバーにデータを分散させることでスケールアウトできる

SQLのスケーラビリティの課題

  • シャーディングは複雑な技術であり、運用が難しい
  • データの整合性を保つ必要がある

NoSQLのスケーラビリティ

  • 水平方向: 多くのNoSQLデータベースは、シャーディングのような技術を用いて、複数のサーバーにデータを分散させることで簡単にスケールアウトできる

NoSQLのスケーラビリティの利点

  • SQLよりも簡単にスケールアウトできる
  • データの整合性を保つ必要がない場合が多い

NoSQLのスケーラビリティの課題

  • SQLよりも機能が少ない場合が多い
  • データの整合性を保つ必要がある場合、複雑な処理が必要になる

シャーディングとは

https://zenn.dev/btc/articles/240402_sharding_db

トランザクション処理

https://zenn.dev/btc/articles/240402_sql_transaction

Discussion