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

Cara membuat tabel MySQL yang diindeks dengan baik bergabung secara efektif

Oke, saya telah menguji ini pada 30.000+ catatan per tabel dan ini berjalan sangat cepat.

Seperti yang ada saat ini, Anda melakukan penggabungan pada dua tabel besar saat ini, tetapi jika Anda memindai kecocokan pada 'val' di setiap tabel terlebih dahulu, itu akan mengurangi ukuran kumpulan gabungan Anda secara substansial.

Saya awalnya memposting jawaban ini sebagai satu set subkueri tetapi saya tidak menyadari bahwa MySQL sangat lambat pada subkueri bersarang karena dijalankan dari luar ke dalam. Namun jika Anda mendefinisikan subkueri sebagai tampilan, ia menjalankannya dari dalam ke luar.

Jadi, buat dulu tampilannya.

CREATE VIEW tbl1_iii AS (
SELECT * FROM tbl1 WHERE val='iii'
);
CREATE VIEW tbl2_iii AS (
SELECT * FROM tbl2 WHERE val='iii'
);

Kemudian jalankan kueri.

SELECT tbl1_iii.id from tbl1_iii,tbl2_iii
WHERE tbl1_iii.id = tbl2_iii.id;

Petir.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQLSyntaxErrorException saat mencoba menjalankan PreparedStatement

  2. Strategi Pool Koneksi:Baik, Buruk atau Jelek?

  3. Bagaimana cara mengurutkan berdasarkan tanggal sebelumnya dalam database?

  4. Bisakah saya memasukkan kata sandi sekali untuk beberapa permintaan baris perintah mysql, di mana kueri tidak diketahui di muka?

  5. Mysql menonaktifkan kolom auto_increment sementara dalam prosedur Tersimpan