背景過去のビジネス データは MySQL に保存されるため、操作記録テーブル video_log があります。ユーザーがレコードを作成、更新、または監査人がレコードを確認するたびに、対応する video_log にログが追加されます。このログ テーブルには挿入のみがあります。ご想像のとおり、1 つのビデオは複数のログに対応します。1 日に 100,000 本のビデオがある場合、1 つのビデオに対して平均 5 つのログは、1 日に 500,000 ログ、1 か月に 50 * 30 = 1,500 万レコード、1 年に 1500 * 12 = 1 億 8,000 万レコードを意味します。現在、オンライン上のデータは 2 億件以上あります。ログ自体は C エンド向けではなく、問題を照会するために使用されるため、若干の遅延は許容されます。 しかし、時間が経つにつれて、どうしても速度が遅くなり、効率に影響が出るため、変換のアイデアが提案されました。 解決策1: 古いデータをバックアップするログ自体は最も重要なデータではありませんが、高いリアルタイム性能も要求されるため(リアルタイムクエリの問題)、コアとなる基本ストレージは変更せずに、古いデータを移行するというアイデアが当初の考えでした。結局のところ、1年前の操作記録を突然クエリする可能性は非常に低いです。突然確認する必要がある場合は、オフラインにすることができます。設計面では、毎日午前 4 時頃 (ビジネスのオフピーク時間帯) にデータを抽出するスケジュールされたスクリプトのみが必要です。抽出されたデータは、何らかのオフライン ストレージ (一般的に企業には Hive ベースのデータ ウェアハウスなどがある) にレポートできるため、オンラインの video_log データは増加し続けます。 オプション2: テーブルを分割するテーブルを分割することも解決策の 1 つです。ソリューション 1 と比較すると、すべてのデータをリアルタイムでクエリできるという利点があります。欠点は、コードを変更する必要があることです。
次のステップは、コードを変換し、新しいデータと古いデータの読み取りと書き込みの問題を解決することです。
解決策3: tidbに移行するオプション 2 の欠点は明らかです。3 年後はどうすればよいのでしょうか? メーターの解体を続けるのでしょうか?そこには常に歴史的な負債があるように感じます。そこで私たちは、分散データベースである tidb に目を向けました。tidb に接続すれば、テーブルのシャーディングについて心配する必要はありません。tidb がこれらすべてを実行し、ノードの容量を自動的に拡張します。分散されているため、tidb の主キーは順序付けられておらず、これは非常に重要です。
古いデータを同期する際の落とし穴に焦点を当ててみましょう。tidb への移行は簡単に思えますが、実際にはジョブ スクリプトにいくつかの落とし穴が隠れています。
最終同期スクリプトソリューションデータの重複、ジョブの再開の効率、全体の同期の効率を考慮して、大まかに次のような計画を立てました。
最終的に、ソリューション 3 の 4 つの切り替え手順 + 効率的な同期スクリプトにより、データ移行がスムーズに完了しました。 要約するこれで、MySQL 移行ソリューションと落とし穴に関するこの記事は終了です。より関連性の高い MySQL 移行ソリューションと落とし穴については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Nginx の場所と proxy_pass パスの設定の問題の概要
>>: シンプルで簡単なJavaScript開発のためのSvelte実装原理の詳細な説明
目次1. サーバーAのmy.cnfファイルを変更する2. サーバーBのmy.cnfファイルを変更する...
1. --cpu=<値> 1) コンテナが使用できるCPUリソースの量を指定しますが、コ...
おそらく、この問題にまだ遭遇していない人もいるでしょうから、まずは適応高さとは何かを説明しましょう。...
1. keepalived の紹介Keepalived は、もともと LVS クラスタ システム内の...
HTML+CSS 1. WEB 標準と W3C の理解と知識<br /> タグを閉じ、小...
序文注: テストデータベースのバージョンはMySQL 8.0ですテーブルを作成し、ユーザー scot...
目次1. 電卓機能の紹介2. 計算機ページのデザイン1. ナビゲーションバー2. データ部分3. i...
Docker で MySQL コンテナを作成する場合、コンテナの起動後にデータベースとテーブルが自動...
前提条件: Percona 5.6 バージョン、トランザクション分離レベルは RR mysql>...
1. Vimの公式ウェブサイトにアクセスして、オペレーティングシステムに適した実行ファイルをダウンロ...
目次1. 仮想ホスト1.1 仮想ホストの概念1.2 仮想ホストタイプ2. IP仮想ホストに基づく2....
このアイデアを改善し、より良い意見を得られることを期待して、議論を刺激するためにいくつかの値を大まか...
MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...
CSSファイルに書き込むコードをコピーコードは次のとおりです。 01.html {グレイスケール(1...
今日は、タブ バーをクリックして切り替えるという目的を実現するために、js と jQuery を使用...