sql >> データベース >  >> RDS >> Mysql

Bツリーとハッシュテーブル

    要素にアクセスできるのは、ハッシュテーブルの主キーのみです。これは、ツリーアルゴリズム( O(1))よりも高速です。 log(n)の代わりに )、ただし範囲を選択することはできません( xの間のすべて およびy )ツリーアルゴリズムは、Log(n)でこれをサポートします 一方、ハッシュインデックスは、全表スキャンの結果になる可能性がありますO(n) 。また、ハッシュインデックスの一定のオーバーヘッドは通常大きくなります(これはシータ表記の要素ではありませんが、まだ存在しています )また、ツリーアルゴリズムは通常、保守、データの拡大、スケーリングなどが容易です。

    ハッシュインデックスは事前定義されたハッシュサイズで機能するため、オブジェクトが格納される「バケット」ができあがります。これらのオブジェクトは、このパーティション内で適切なオブジェクトを見つけるために再度ループされます。

    したがって、サイズが小さい場合、小さな要素のオーバーヘッドが大きくなり、サイズが大きいとさらにスキャンされます。

    今日のハッシュテーブルアルゴリズムは通常スケーリングしますが、スケーリングは非効率的です。

    ただし、インデックスがハッシュサイズと比較して許容サイズを超え、インデックス全体を再構築する必要がある場合があります。通常、これは問題ではありませんが、巨大な巨大なデータベースの場合、これには数日かかることがあります。

    ツリーアルゴリズムのトレードオフは小さく、ほとんどすべてのユースケースに適しているため、デフォルトです。

    ただし、非常に正確なユースケースがあり、必要なものと必要なものだけを正確に知っている場合は、インデックスのハッシュを利用できます。



    1. mysql_queryのパラメーターの使用

    2. OracleをAmazonAuroraに接続する

    3. mysqlblobからの画像を表示する方法

    4. MySQLで複数列の主キーで複数の行を選択するにはどうすればよいですか?