Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để chọn nhiều hàng một cách hiệu quả?

Bạn cần sử dụng chỉ mục để chọn nhiều hàng một cách hiệu quả. Đầu tiên chúng ta hãy tạo một bảng -

 mysql> tạo bảng DemoTable1501 -> (-> Id int NOT NULL PRIMARY KEY, -> URL text ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,62 giây) 

Đây là truy vấn để tạo chỉ mục -

 mysql> tạo chỉ mục id_index trên DemoTable1501 (Id); Truy vấn OK, 0 hàng bị ảnh hưởng (0,23 giây) Hồ sơ:0 Bản sao:0 Cảnh báo:0 

Chèn một số bản ghi vào bảng bằng lệnh chèn -

 mysql> chèn vào các giá trị DemoTable1501 (101, 'www.facebook.com'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,10 giây) mysql> chèn vào các giá trị DemoTable1501 (110, 'www.google.com'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,08 giây) mysql> chèn vào giá trị DemoTable1501 (220, 'www.gmail.com'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,06 giây) mysql> chèn vào giá trị DemoTable1501 (350, 'www.youtube .com '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,08 giây) 

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

 mysql> select * từ DemoTable1501; 

Điều này sẽ tạo ra kết quả sau -

 + ----- + ------------------ + | Id | URL | + ----- + ------------------ + | 101 | www.facebook.com || 110 | www.google.com || 220 | www.gmail.com || 350 | www.youtube.com | + ----- + ------------------ + Đã thiết lập 4 hàng (0,00 giây) 

Sau đây là truy vấn để chọn nhiều hàng một cách hiệu quả -

 mysql> select * from DemoTable1501 -> where Id in (101,220,350); 

Điều này sẽ tạo ra kết quả sau -

 + ----- + ------------------ + | Id | URL | + ----- + ------------------ + | 101 | www.facebook.com || 220 | www.gmail.com || 350 | www.youtube.com | + ----- + ------------------ + Đã thiết lập 3 hàng (0,00 giây) 

Để chứng minh điều này, hãy sử dụng lệnh SHOW trong đó Handler_read_key sử dụng 3 trong số 4 Id -

 mysql> HIỂN THỊ TÌNH TRẠNG NHƯ 'Handler_%'; 

Điều này sẽ tạo ra kết quả sau -

 + ---------------------------- + ------- + | Tên_biến | Giá trị | + ---------------------------- + ------- + | 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 hàng trong bộ (0,00 giây)