🐬
SQLとNoSQLの違い
SQL | NoSQL | |
---|---|---|
データ形式 | 構造化データ | 非構造化データ/半構造化データ |
データベースの種類 | リレーショナルデータベース | キーバリューストア、ドキュメントストア、グラフデータベースなど |
データ操作言語 | SQL | 独自言語 |
トランザクション処理 | 適している | 適していない場合が多い |
スケーラビリティ | 比較的低い | 高い |
例 | 顧客情報、商品情報など | SNSの投稿、IoTデバイスのデータなど |
言語 | MySQL,PostgreSQL,Oracle Database,Microsoft SQL Server | キーバリューストア:Redis,Memcached ドキュメントストア: MongoDB, Elasticsearch グラフデータベース: Neo4j, Apache TinkerPop |
用語解説
DBにおける構造化データと非構造化データの違い
キーバリューストア、ドキュメントストア、グラフデータベース
スケーラビリティ
SQLのスケーラビリティ
- 垂直方向: サーバーのCPU、メモリ、ストレージを増強することでスケールアップできる
- 水平方向: シャーディングと呼ばれる技術を用いて、複数のサーバーにデータを分散させることでスケールアウトできる
SQLのスケーラビリティの課題
- シャーディングは複雑な技術であり、運用が難しい
- データの整合性を保つ必要がある
NoSQLのスケーラビリティ
- 水平方向: 多くのNoSQLデータベースは、シャーディングのような技術を用いて、複数のサーバーにデータを分散させることで簡単にスケールアウトできる
NoSQLのスケーラビリティの利点
- SQLよりも簡単にスケールアウトできる
- データの整合性を保つ必要がない場合が多い
NoSQLのスケーラビリティの課題
- SQLよりも機能が少ない場合が多い
- データの整合性を保つ必要がある場合、複雑な処理が必要になる
シャーディングとは
トランザクション処理
Discussion