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

ดัชนี MySQL ในคอลัมน์ประเภท int?


การเพิ่มดัชนีในคอลัมน์ประเภท int เป็นทางเลือกที่ดีในการเรียกใช้คิวรีของคุณเร็วขึ้นเมื่อใดก็ตามที่ตารางของคุณมีระเบียนจำนวนมาก

หากตารางของคุณมีระเบียนน้อยกว่า ไม่ควรใช้ดัชนีในคอลัมน์ประเภท int

เพื่อให้เข้าใจแนวคิด ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง indexOnIntColumnDemo -> ( -> UserId int, -> UserName varchar(20), -> UserAge int, -> INDEX(UserId) -> );Query OK, 0 แถวได้รับผลกระทบ (0.85 วินาที)

ตอนนี้ตรวจสอบคำอธิบายของตาราง -

mysql> อธิบาย indexOnIntColumnDemo;

นี่คือผลลัพธ์ -

<ก่อนหน้า>+----------+-------------+------+----+-------- --------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+----------+-------------+------+-------------+--------- +-------+| รหัสผู้ใช้ | int(11) | ใช่ | MUL | NULL | || ชื่อผู้ใช้ | varchar(20) | ใช่ | | NULL | || อายุผู้ใช้ | int(11) | ใช่ | | NULL | |+----------+-------------+------+-------------+---------+ --------+3 แถวในชุด (0.04 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า indexOnIntColumnDemo (1001,'John',23); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า indexOnIntColumnDemo (1002, 'Sam', 25); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า indexOnIntColumnDemo (1003, 'Carol', 22); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า indexOnIntColumnDemo (1004, 'ไมค์', 26); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+---------+----------+---------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อายุผู้ใช้ |+---------+----------+---------+| 1001 | จอห์น | 23 || 1002 | แซม | 25 || 1003 | แครอล | 22 || 1004 | ไมค์ | 26 |+---------+----------+---------+4 แถวในชุด (0.00 วินาที)

เพื่อให้ทำงานเร็วขึ้น ให้ใช้เงื่อนไขในคอลัมน์ดัชนีประเภท int

mysql> เลือก *จาก indexOnIntColumnDemo โดยที่ UserId=1004;

ผลลัพธ์ที่ได้จะเป็นดังนี้

<ก่อนหน้า>+---------+----------+---------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อายุผู้ใช้ |+---------+----------+---------+| 1004 | ไมค์ | 26 |+---------+----------+---------+1 แถวในชุด (0.00 วินาที)