ハッシュアルゴリズムに基づくMySQLテーブルパーティション

ハッシュアルゴリズムに基づくMySQLテーブルパーティション

以下に紹介する Mysql テーブルのパーティショニング プロセスは、ハッシュ アルゴリズムに基づいています。Mysql テーブルのパーティショニング プロセスを理解する前に、まずハッシュ アルゴリズムを理解しましょう。

ハッシュ テーブルは、特別なハッシュ アルゴリズムによって計算された値です。この値は一意である必要があり、計算された値を使用して必要な値を見つけることができます。これをハッシュ テーブルと呼びます。

サブテーブルで使用するハッシュ アルゴリズムもこの考え方に似ています。特定のハッシュ アルゴリズムを使用して、元のターゲットの ID または名前からデータ ストレージ テーブルのテーブル名を計算し、対応するテーブルにアクセスします。

上記の Tieba を続けると、各 Tieba にはセクション名とセクション ID があります。これら 2 つの値は固定かつ一意であるため、これら 2 つの値のいずれかに対して何らかの操作を実行することで、対象テーブルの名前を取得することを検討できます。

ここで、Tieba システムについて考えてみましょう。システムで許可されるデータは最大 1 億個で、各テーブルには 100 万件のレコードが格納されると仮定すると、システム全体を 100 個以下のテーブルに収容できます。この標準に従って、Tieba のフォーラム ID をハッシュし、テーブル名であるキー値を取得して、対応するテーブルにアクセスすることを想定しています。

単純なハッシュアルゴリズムを構築します。

関数 get_hash($id){
文字列を bin2hex に変換します。
$ハッシュ = substr($str, 0, 4);
(strlen($hash)<4)の場合{
$ハッシュ = str_pad($ハッシュ、4、"0");
}
$hash を返します。
}

アルゴリズムは基本的にセクション ID 値を渡し、関数は 4 桁の文字列を返します。文字列の長さが足りない場合は、0 が埋め込まれます。

たとえば、get_hash(1) は「3100」を出力し、get_hash(23819) を入力すると 3233 が返されます。その後、テーブル プレフィックスと組み合わせるだけでテーブルにアクセスできます。次に、ID 1 のコンテンツにアクセスする必要がある場合、結合されたテーブルは topic_3100、reply_3100 となり、ターゲット テーブルに直接アクセスできます。

もちろん、ハッシュ アルゴリズムを使用した後、一部のデータが同じテーブルに存在する可能性があります。これはハッシュ テーブルとは異なります。ハッシュ テーブルは競合を解決しようとしますが、ここでは必要ありません。もちろん、テーブル データが格納される可能性のあるテーブル名を予測して分析する必要もあります。

より多くのデータを保存する必要がある場合は、バイナリを16進数に変換するなど、セクション名をハッシュすることもできます。漢字は数字や文字よりもはるかに多いため、重複の可能性は低くなりますが、組み合わせることができるテーブルが増えるため、それに応じて他の問題を考慮する必要があります。

最終的に、ハッシュ方式を使用する場合は、より多くのテーブルを生成し、データをより速くクエリするために、適切なハッシュ アルゴリズムを選択する必要があります。

【編集者のおすすめ】

MySQLサーバーの内部ロック

Mysql マージテーブルの利点

MySQL と SQL Server の 25 の違い

MySQLの一時テーブルについてさらに詳しく知るには

MySQL の概要 ステートメントの使用方法を表示

<<:  ドイツのハッカーはレンタルしたコンピュータリソースを使ってハッシュアルゴリズムを攻撃する

>>:  SQL Server の時間アルゴリズム

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

Python コードを書くことができる人工知能 Kite が Linux のサポートを発表。プログラマーは職を失うことになるのでしょうか?

[[264788]]プログラマーが Python コードを書くという反復的な作業を軽減するのに役立...

AIとディープラーニングはもはやハイエンドのビデオ監視アプリケーションに限定されたものではない

[[408248]]最近、ディープラーニング AI を活用したビデオ監視プロジェクトに携わったことが...

スペルミスを心配する必要はありません。Microsoft Edge ブラウザに新しいウェブ「スマート検索」AI 機能が追加されます。

8月23日、Microsoft Edgeブラウザは、ユーザーがウェブ上で関連コンテンツを簡単に検索...

6つの主要な人工知能アプリケーションの主要技術の詳細な説明

01ロボティックプロセスオートメーション(RPA) RPA (ロボティック プロセス オートメーショ...

AI予算は増加しているが、導入の課題は残る

企業の人工知能予算は急速に増加しているが、導入には依然として大きな課題が残っていることが、Algor...

...

シャンダイノベーション研究所とソゴウ研究者:自然言語処理の応用

【TechWeb Report】6月26日、山大創新研究所検索テーマ研究所研究員の賈文傑氏と捜狗自然...

Meta AIは、ImageNetの事前トレーニングを超えて、小規模データセット向けの自己教師付き事前トレーニングであるSplitMaskを提案しています。

現在、コンピューター ビジョン ニューラル ネットワークは高度にパラメータ化されています。通常、数千...

5G時代には人工知能が人を殺し始めるのでしょうか?

映画やテレビ作品では、人工知能による殺人はごく普通のことのように思えますが、結局のところ、それは人間...

計算知能とは何ですか?今日の世界における人工知能と機械学習

テクノロジーは発見に依存し、発見はテクノロジーの進歩に依存します。これは計算知能の文脈ではまさに真実...

旅行リスクの特定: AI ソリューションが世界の COVID-19 安全マップを作成

州や自治体が新型コロナウイルスから国民を守るために制限措置を講じてきたため、ほぼ2年間、あらゆる種類...

人工知能チュートリアル (V): Anaconda とさらなる確率理論

このシリーズの前回の記事では、まず TensorFlow の使い方を紹介しました。これは、人工知能お...

Java プログラミング スキル - データ構造とアルゴリズム「プレフィックス、インフィックス、サフィックス」

[[387421]]接頭辞表現(ポーランド語表記)プレフィックス式はポーランド式とも呼ばれます。プ...

...