Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

FORCE INDEX di MySQL - di mana saya meletakkannya?

Sintaks untuk indeks petunjuk didokumentasikan di sini:
http:// dev.mysql.com/doc/refman/5.6/en/index-hints.html

FORCE INDEX tepat setelah referensi tabel:

SELECT * FROM (
    SELECT owner_id,
           product_id,
           start_time,
           price,
           currency,
           name,
           closed,
           active,
           approved,
           deleted,
           creation_in_progress
    FROM db_products FORCE INDEX (products_start_time)
    ORDER BY start_time DESC
) as resultstable
WHERE resultstable.closed = 0
      AND resultstable.active = 1
      AND resultstable.approved = 1
      AND resultstable.deleted = 0
      AND resultstable.creation_in_progress = 0
GROUP BY resultstable.owner_id
ORDER BY start_time DESC

PERINGATAN:

Jika Anda menggunakan ORDER BY sebelum GROUP BY untuk mendapatkan entri terbaru per owner_id , Anda menggunakan perilaku MySQL yang tidak standar dan tidak terdokumentasi untuk melakukannya.

Tidak ada jaminan bahwa itu akan terus berfungsi di versi MySQL yang akan datang, dan kueri kemungkinan besar merupakan kesalahan di RDBMS lainnya.

Cari tag untuk banyak penjelasan tentang solusi yang lebih baik untuk jenis kueri ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memeriksa Apakah Tabel Sudah Ada Sebelum Membuatnya di MySQL

  2. Ekspor Data dari Database MySQL

  3. Menghasilkan pohon berbasis Kedalaman dari Data Hirarki di MySQL (tanpa CTE)

  4. Perbarui langsung Data MySQL

  5. MySQL:Kapan Flush Privileges di MySQL benar-benar dibutuhkan?