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

Bagaimana mengoptimalkan perhitungan jarak Levenshtein ini

Saya berasumsi bahwa levenshtein_ratio adalah fungsi yang Anda tulis (atau mungkin disertakan dari tempat lain). Jika demikian, server database tidak akan dapat mengoptimalkannya dalam arti normal menggunakan indeks. Jadi ini berarti hanya perlu memanggilnya untuk setiap record yang dihasilkan dari kondisi join lainnya. Dengan gabungan dalam, itu bisa menjadi angka yang sangat besar dengan ukuran tabel tersebut (maksimum 8000*250000 =2 miliar). Anda dapat memeriksa berapa kali panggilan itu perlu dilakukan dengan ini:

SELECT
      count(*)
   FROM
      library a,
      classifications b
   WHERE  
      a.`release_year` = b.`year`
      AND a.`id` IS NULL

Itulah penjelasan mengapa lambat (bukan jawaban untuk pertanyaan bagaimana mengoptimalkannya). Untuk mengoptimalkannya, Anda mungkin perlu menambahkan faktor pembatas tambahan ke kondisi bergabung untuk mengurangi jumlah panggilan ke fungsi yang ditentukan pengguna.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penandaan hierarkis dalam SQL

  2. Transpos Kueri Besar

  3. Apakah saya perlu menggunakan pustaka kumpulan C3P0 di aplikasi web (grails) saya?

  4. Perhitungan MySQL dari jumlah kumulatif dengan kondisi reset

  5. Kerangka kerja apa yang digunakan untuk mem-bootstrap proyek skala produksi pertama saya?