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

rand()によるmysqlの順序パフォーマンスの問題と解決策

    まず、100000000ではなく、1からMAX(id)までのランダムな値を生成します。

    次に、少なくとも2つの優れた解決策があります。

    1. >を使用する =ではありません

      SELECT items FROM tablea where status='0' and id>'$id23' LIMIT 1
      

      (status,id,items)にインデックスを作成します これをインデックスのみのクエリにします。

    2. =を使用する 、ただし、ヒットが見つからない場合は、別のランダム値で再試行してください。数回の試行が必要な場合もありますが、多くの場合、1回の試行のみが必要です。 = 主キーを使用できるため、より高速になるはずです。そして、それがより速く、90%の時間で1回の試行でそれを取得する場合、複数回の試行が必要な場合、残りの10%の時間を補うことができます。 id値にいくつのギャップがあるかによって異なります。



    1. SQLServer監視ツールで探すべき主な機能

    2. mysql多重化されたエントリの複数の発生をカウントします

    3. PL / SQLにはJavaと同等のStringTokenizerがありますか?

    4. JPAHibernateを使用してMySQLストアドプロシージャを作成する