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

ฉันจะปรับปรุงคิวรีแบบใช้เลือกข้อมูลเพื่อให้เร็วขึ้นใน MySQL ได้อย่างไร


สำหรับการสืบค้นที่รวดเร็วขึ้น ให้ใช้ MySQL IN() เนื่องจากใช้การจัดทำดัชนีภายใน ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1618 -> ( -> ClientId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varchar(20), -> ClientEmailId varchar(30) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (1.53 วินาที) 

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

mysql> แทรกลงในค่า DemoTable1618(ClientName,ClientEmailId) ('Chris Brown','Brown323@gmail.com'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า DemoTable1618 (ClientName,ClientEmailId) ('David Miller','MillerDavid@gmail.com');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที) mysql> แทรกลงในค่า DemoTable1618 (ClientName,ClientEmailId) ('John Doe','998John_Doe@gmail.com');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.28 วินาที) mysql> แทรกลงในค่า DemoTable1618 (ClientName,ClientEmailId) ('John Smith','999John_Smith@gmail.com'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรก ลงใน DemoTable1618(ClientName,ClientEmailId) values('Adam Smith','Adam_Smith@gmail.com');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)

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

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

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

<ก่อน>+----------+--------------+-------------------- -----+| รหัสลูกค้า | ชื่อลูกค้า | ClientEmailId |+----------+--------------+--------------------- ----+| 1 | คริส บราวน์ | Brown323@gmail.com || 2 | เดวิด มิลเลอร์ | MillerDavid@gmail.com || 3 | จอห์น โด | 998John_Doe@gmail.com || 4 | จอห์น สมิธ | 999John_Smith@gmail.com || 5 | อดัม สมิธ | Adam_Smith@gmail.com |+----------+---------------------------+----------------- --------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะใช้ IN() สำหรับการสืบค้นที่เร็วขึ้น -

mysql> เลือก * จาก DemoTable1618 โดยที่ ClientEmailId IN('998John_Doe@gmail.com','999John_Smith@gmail.com','MillerDavid@gmail.com');

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

<ก่อน>+----------+--------------+-------------------- -----+| รหัสลูกค้า | ชื่อลูกค้า | ClientEmailId |+----------+--------------+--------------------- ----+| 2 | เดวิด มิลเลอร์ | MillerDavid@gmail.com || 3 | จอห์น โด | 998John_Doe@gmail.com || 4 | จอห์น สมิธ | 999John_Smith@gmail.com |+----------+------------------------------- --------+3 แถวในชุด (0.00 วินาที)