Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แบบสอบถาม MySQL เพื่อเลือกหลายแถวอย่างมีประสิทธิภาพ?


คุณต้องใช้ดัชนีเพื่อเลือกหลายแถวอย่างมีประสิทธิภาพ ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1501 -> ( -> Id int ไม่ใช่คีย์หลัก NULL -> ข้อความ URL -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

นี่คือแบบสอบถามเพื่อสร้างดัชนี -

mysql> สร้างดัชนี id_index บน DemoTable1501(Id);ตกลง สืบค้น 0 แถวได้รับผลกระทบ (0.23 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1501 (101,'www.facebook.com'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)mysql> ลงในค่า DemoTable1501 (110,'www.google.com'); แบบสอบถาม ตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที) mysql> แทรกลงในค่า DemoTable1501 (220, 'www.gmail.com'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.06 วินาที) mysql> แทรกลงในค่า DemoTable1501 (350,'www.youtube) .com');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.08 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก * จาก DemoTable1501;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+-----------------+| รหัส | URL |+----+-----------------+| 101 | www.facebook.com || 110 | www.google.com || 220 | www.gmail.com || 350 | www.youtube.com |+----+-----------------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อเลือกหลายแถวอย่างมีประสิทธิภาพ -

mysql> เลือก * จาก DemoTable1501 -> where Id in (101,220,350);

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+-----------------+| รหัส | URL |+----+-----------------+| 101 | www.facebook.com || 220 | www.gmail.com || 350 | www.youtube.com |+----+-----------------+3 แถวในชุด (0.00 วินาที)

เพื่อพิสูจน์สิ่งนี้ ให้ใช้คำสั่ง SHOW ซึ่ง Handler_read_key ใช้ 3 ใน 4 Ids -

mysql> แสดงสถานะเช่น 'Handler_%';

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------------------------+------+| Variable_name | ค่า |+---------------------------+-------+| Handler_commit | 1 || Handler_delete | 0 || Handler_discover | 0 || Handler_external_lock | 2 || Handler_mrr_init | 0 || Handler_prepare | 0 || Handler_read_first | 0 || Handler_read_key | 3 || Handler_read_last | 0 || Handler_read_next | 0 || Handler_read_prev | 0 || Handler_read_rnd | 0 || Handler_read_rnd_next | 0 || Handler_rollback | 0 || Handler_savepoint | 0 || Handler_savepoint_rollback | 0 || Handler_update | 0 || Handler_write | 0 |+---------------------------+ -------- +18 แถวในชุด (0.00 วินาที)