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

主キーとしての文字列のパフォーマンスの低下?

    DBはBツリーを維持する必要があります (または同様の構造)それらを注文する方法でキーを使用します。

    キーがハッシュされてBツリーに保存されている場合は、一意性をすばやく確認できます。 キーの-キーはまだ効率的に検索することができます。ただし、範囲を効率的に検索することはできません。 データの数(例:LIKE )Bツリーは文字列値に従って順序付けられなくなったためです。

    したがって、ほとんどのDBは実際に文字列をBツリーに格納していると思います。これにより、(1)より多くのスペースを使用できます。 数値よりも(2)Bツリーをリバランスする必要があります キーが任意の順序で挿入されている場合(数値pkのように値を増やすという概念はありません)。

    ペナルティ 実際には、取るに足らないものから巨大なものまでさまざまです。それはすべて、使用法、行数、文字列キーの平均サイズ、テーブルを結合するクエリなどによって異なります。



    1. 1回の選択でカテゴリごとに最新の2つのアイテムを取得する方法(mysqlを使用)

    2. ユーザーのmysqlサーバーにリモートアクセス許可を付与するにはどうすればよいですか?

    3. CURRENT_DATE / CURDATE()がデフォルトのDATE値として機能しない

    4. PL/SQLのifステートメント条件のスカラーサブクエリ