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

MySQLの単純な選択クエリは遅い

    1億1000万件のレコードがあるので、問題のトラックIDを持つエントリがたくさんあるとは想像できません。

    のようなインデックスがあります
    (trackID1, sim )
    (trackID2, sim )
    (tracksimID, sim)
    

    ユニオンを介してPREQUERYを実行し、その結果に参加します

    select STRAIGHT_JOIN
          TS2.*
       from
          ( select ts.tracksimID
               from tracksim ts
               where ts.trackID1 = 168123
                 and ts.sim > 0.5
            UNION
            select ts.trackSimID
               from tracksim ts
               where ts.trackid2 = 168123
                 and ts.sim > 0.5 
          ) PreQuery
          JOIN TrackSim TS2
             on PreQuery.TrackSimID = TS2.TrackSimID
       order by
          TS2.SIM DESC
       LIMIT 0, 100
    


    1. date_formatを含むSQLステートメントでのパラメーターの使用

    2. 3つのテーブルでのSQLSELECTステートメントの結合

    3. 損傷したSQLバックアップを修復するSQLバックアップリカバリツール-製品レビュー-ダニエルジョーンズによるゲスト投稿

    4. MVC5Mqsqlの問題