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

Menggabungkan rentang interval secara efisien dalam SQL

Tidak yakin bagaimana semuanya bekerja secara internal, tetapi tergantung pada situasinya, saya akan menyarankan untuk bermain-main dengan tabel yang 'menggulung' semua nilai dari d1 dan kemudian bergabung dengan yang itu. Dengan cara ini mesin kueri dapat menunjukkan dengan tepat rekaman yang tepat 'dengan tepat' daripada harus menemukan kombinasi batas yang cocok dengan nilai yang dicari.

misalnya

x value
a  1
a  2
a  3
b  5
b  6
b  7
b  8
b  9
b 10
b 11
c 19 etc..

diberikan indeks pada kolom nilai (**), ini seharusnya sedikit lebih cepat daripada bergabung dengan ANTARA awal DAN akhir pada tabel d1 asli IMHO.

Tentu saja, setiap kali Anda membuat perubahan pada d1, Anda juga harus menyesuaikan tabel yang diluncurkan (pemicu?). Jika ini sering terjadi, Anda akan menghabiskan lebih banyak waktu untuk memperbarui tabel yang diluncurkan daripada yang Anda peroleh di tempat pertama! Selain itu, ini mungkin memakan sedikit ruang (disk) dengan cepat jika beberapa intervalnya sangat besar; dan juga, ini mengasumsikan kita tidak perlu mencari bilangan bulat (misalnya bagaimana jika kita mencari nilai 3,14 ?)

(Anda dapat mempertimbangkan untuk bereksperimen dengan yang unik pada (nilai, x) di sini...)




  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 Menyebarkan MySQL di Ubuntu dan Dikelola Sepenuhnya

  2. LOAD DATA LOCAL INFILE dilarang di... PHP

  3. Apa yang terjadi jika koneksi MySQL terus menerus tidak ditutup pada halaman PHP?

  4. mengimpor file sql ke database menggunakan wamp

  5. Tidak dapat terhubung ke database:Akses ditolak untuk pengguna ''@'localhost' ke database 'socialdb'