ハッシュアルゴリズムに基づく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 の時間アルゴリズム

ブログ    

推薦する

情報抽出における画期的な進歩! NLP は大規模に実装されようとしているのでしょうか?

AI におけるブレークスルーには、一般的に 3 つの種類があります。学術ランキングで上位を占め、学...

...

ついに誰かが自動運転を明確にした

01 自動運転とは自動運転は無人運転とも呼ばれ、その名の通り、車両が人間の操作なしに周囲の環境を認...

テンセントが自動運転車市場に参入、百度セキュリティが共同で「OASESスマート端末セキュリティエコロジカルアライアンス」を設立

テンセントは自動運転システムを開発し、無人運転市場への参入も狙っている。百度セキュリティはファーウェ...

人工知能の簡単な歴史 | (1)相農は人工知能の誕生を目撃した

[[391106]] 1956年、人工知能元年。その夏、米国ニューハンプシャー州ハノーバーの小さな町...

自動運転車向けエッジAIコンピューティングの可能性

自動運転はエッジコンピューティングの重要な応用分野です。自動運転には100~1000TOPSのエッジ...

...

人工知能のこれら 5 つのトレンドは世界にどのような影響を与えるでしょうか?

人工知能はもはや未来の技術ではありません。私たちの日常の作業を自動化する機械はますます賢くなり、人工...

北京、6つの高速道路を段階的に自動運転試験に開放、安全担当者を段階的に撤退させようとしている

同市は昨年9月に高水準の自動運転実証区を設立したのに続き、インテリジェントコネクテッドカーの政策パイ...

人工知能はどのようにして自分自身に目標を設定するのでしょうか?

インテリジェントシステムは独自の初期目標を決定することはできませんが、経験に基づいて独自の派生目標を...

アニメーション + 原理 + コード、トップ 10 の古典的なソート アルゴリズムを解釈する

ソートアルゴリズムは、「データ構造とアルゴリズム」における最も基本的なアルゴリズムの 1 つです。ソ...

製造業で「ロボット」が増加中

1997年、IBMが開発したディープ・ブルーがロシアのチェス名人ガルリ・カスパロフに勝利し、人工知能...

プロセス自動化の分野をどのように理解すればよいでしょうか?

[51CTO.com クイック翻訳]今日、プロセス自動化にはさまざまな形があります。また、ツールの...

スタンフォード大学の「バーチャルタウン」がオープンソース化:25人のAIエージェントが「ウエストワールド」に登場

「ウエストワールド」を見たことがある友人は、このドラマの舞台が未来の世界、巨大なハイテクな大人向けテ...

Python 補間アルゴリズムの完全な説明

[[411126]]この記事はWeChatの公開アカウント「Python Chinese Commu...