X. Tách kt ni không mt thông tin ấ
7. Ch mc (index) ụ
• Ch m c trên thu c tính A là m t c u trúc d li u làm cho vi c tìm ki m m uỉ ụ ộ ộ ấ ữ ệ ệ ế ẫ tin có ch a A hi u qu h nứ ệ ả ơ
• Cú pháp
CREATE INDEX <tên ch m c> ỉ ụ ON <tên b ng>(<tên c t>)ả ộ
DROP INDEX <tên ch m c>ỉ ụ • Ví dụ
CREATE INDEX PHG_IND ON NHANVIEN(PHG)
CREATE INDEX PHG_GT_IND ON NHANVIEN(PHG, GT) • Nh n xétậ
– Tìm ki m nhanh trong trế ường h p so sánh v i h ng s và phép k tợ ớ ằ ố ế – Làm ch m đi các thao tác thêm, xóa và s a ậ ử
– T n chi phí ố
• L u tr ch m cư ữ ỉ ụ • Truy xu t đĩa nhi uấ ề • Ch n l a cài đ t ch m c h p lý???ọ ự ặ ỉ ụ ợ Ví dụ
• Xét quan h ệ
– PHANCONG(MA_NVIEN, SODA, THOIGIAN) • Gi sả ử
– PHANCONG đượ ưc l u tr trong 10 blockữ
• Chi phí đ đ c toàn b d li u c a PHANCONG là 10ể ọ ộ ữ ệ ủ
– Trung bình m t nhân viên tham gia 3 đ án và m t đ án có kho ng 3ộ ề ộ ề ả nhân viên làm
• D li u đữ ệ ược tr i đ u trong 10 blockả ề
• Chi phí đ tìm m t nhân viên hay m t đ án là 3ể ộ ộ ề – Khi s d ng ch m c ử ụ ỉ ụ
• Chi phí đ c hay c p nh t ch m cọ ậ ậ ỉ ụ – Thao tác thêm c n 2 l n truy xu t đĩaầ ầ ấ
• Gi s có 3 thao tác đả ử ược th c hi n thự ệ ường xuyên – Q1: SELECT SODA, THOIGIAN
FROM PHANCONG
WHERE MA_NVIEN=‘123456789’
SELECT *
FROM NHANVIEN
WHERE PHG=5 AND GT=‘Nu’
Bảng NHANVIEN có 10.000 bộ
Có 200 nhân viên làm việc cho phòng 5
Đọc 10.000 bộ Đọc 200 bộ Đọc 70 bộ
– Q2: SELECT MANV FROM PHANCONG
WHERE SODA=1 AND THOIGIAN=20.5 – Q3: INSERT INTO PHANCONG
VALUES ( 123456789’, 1, 20.5) • B ng so sánh chi phíả
Thao tác Không có chỉ mục Chỉ mục trên MA_NVIEN trên SODA Chỉ mục cả 2 thuộc tính Chỉ mục trên
Q1Q2 Q2 Q3 10 10 2 4 10 4 10 4 4 4 4 6 2 + 8p1 + 8p2 4 + 6p2 4 + 6p1 6 2p1 – 2p2 Chí phí TB Khoảng thời gian thực hiện Q1 là p1 Khoảng thời gian thực hiện Q2 là p2 Khoảng thời gian thực hiện Q3 là 1 p1 p2