シャーディング
データベースシャーディングの解説:スケーラブルなSQLパフォーマンスのための戦略
https://pingcap.co.jp/blog/database-sharding-defined/
データベースシャーディングとは、データをチャンクに分割し、そのチャンクを複数のデータベースサーバー (またはデータベースインスタンス) に「インテリジェントに」分散させることで、データベースのパフォーマンスを向上させるデータアーキテクチャ戦略です
とのこと
以下は記事に関してメモ
データベースシャーディング
https://scrapbox.io/files/6a250a3f601c8b4efdce3970.png
行ごとに別のDBに分けるんすね~という図
スケーラビリティのためにデータを分割し、異なるデータベースに分散させる
データパーティショニング
https://scrapbox.io/files/6a250742601c8b4efdce3231.png
行ごとに同じDB内の別のインスタンスに分けるんすね~という図
効率的な管理とアクセスのために単一のデータベース内でデータを整理します
分散型SQLデータベースは、ネイティブで自動シャーディングをサポートしており、スケーラビリティとメンテナンスを簡素化します。
とあり、ここがTiDBを使うモチベーションの一つになったりするのだろうか?
ミドルウェアソリューションによる自動シャーディング
MySQLデータベースには、ProxySQLやVitessのようなミドルウェアを使用します。これらのツールは、アプリケーションとデータベースの間に位置し、シャーディングロジックを透過的に処理します。
組み込みシャーディング機能
MySQL ClusterやMariaDBのようなデータベースには、よりMySQLネイティブなシャーディングソリューションとして、組み込みのシャーディング機能が含まれています。