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

Cara mengoptimalkan ORDER BY untuk kolom yang dihitung pada tabel MySQL MASSIVE

Saya telah menemukan 2 (semacam jelas) hal yang telah membantu mempercepat kueri ini ke tingkat yang memuaskan:

  1. Minimalkan jumlah baris yang perlu diurutkan. Dengan menggunakan indeks pada bidang 'id' dan subselect untuk memangkas jumlah record terlebih dahulu, pengurutan file pada kolom yang dihitung tidak terlalu buruk. Yaitu:

    SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE
    FROM (SELECT * FROM sometable WHERE id = 1) AS t 
    ORDER BY SCORE DESC
    
  2. Coba tingkatkan sort_buffer_size di my.conf untuk mempercepat pengurutan file tersebut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql secara otomatis menyimpan stempel waktu pembuatan catatan

  2. kesalahan mysql 'TYPE =MyISAM'

  3. Bagaimana saya bisa mendeteksi baris yang berlebihan dalam tabel?

  4. MySQL Query - dapatkan catatan berdasarkan tanggal saat ini

  5. Bagaimana cara mengubah waktu ke zona waktu perangkat iPhone?