Rumah > pangkalan data > tutorial mysql > Apakah yang perlu anda perhatikan apabila menggunakan pertanyaan berkaitan dalam mysql?

Apakah yang perlu anda perhatikan apabila menggunakan pertanyaan berkaitan dalam mysql?

PHPz
Lepaskan: 2023-05-28 15:17:30
ke hadapan
1104 orang telah melayarinya

1 Pastikan terdapat indeks pada lajur dalam klausa ON dan USING.

Tertib persatuan mesti dipertimbangkan semasa membuat indeks. Apabila jadual A dan jadual B dikaitkan menggunakan lajur c, jika susunan persatuan pengoptimum ialah A, B, maka tidak perlu membuat indeks pada lajur sepadan jadual A. Indeks yang tidak digunakan akan membawa beban tambahan Secara umumnya, melainkan terdapat sebab lain, anda hanya perlu membuat indeks pada lajur yang sepadan pada jadual kedua dalam jujukan persatuan.

2 Pastikan sebarang ungkapan dalam GROUP BY dan ORDER BY hanya melibatkan lajur dalam satu jadual, supaya MySQL boleh menggunakan indeks untuk pengoptimuman.

Contoh

Dengan mengandaikan bahawa MySQL melaksanakan operasi persatuan mengikut susunan persatuan A dan B dalam pertanyaan, maka kod pseudo berikut boleh digunakan untuk nyatakan cara MySQL melengkapkan Siasatan ini:

outer_iterator = SELECT A.xx,A.c FROM A WHERE A.xx IN (5,6);
 
outer_row = outer_iterator.next;
 
while(outer_row) {
 
    inner_iterator = SELECT B.yy FROM B WHERE B.c = outer_row.c;
 
    inner_row = inner_iterator.next;
 
    while(inner_row) {
 
        output[inner_row.yy,outer_row.xx];
 
        inner_row = inner_iterator.next;
 
    }
 
    outer_row = outer_iterator.next;
 
}  可以看到,最外层的查询是根据A.xx列来查询的,A.c上如果有索引的话,整个关联查询也不会使用。再看内层的查询,很明显B.c上如果有索引的话,能够加速查询,因此只需要在关联顺序中的第二张表的相应列上创建索引即可。
Salin selepas log masuk

Atas ialah kandungan terperinci Apakah yang perlu anda perhatikan apabila menggunakan pertanyaan berkaitan dalam mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan