Tips SQL
SQL chắc không con xa lạ gì với chúng ta, từ các bạn làm chuyên môn kỹ thuật, lập trình, cho đến các bạn làm về Bussiness, Consultant, thậm chí là Sale hay là End-user vận hành các hệ thống phần mềm. Biết về SQL là một lợi thế giúp cho bạn hiểu rõ hơn về dữ liệu của doanh nghiệp, của tổ chức hay của bất kỳ một ứng dụng được phát triển với Cơ sở dữ liệu SQL server hay các hệ quản trị cơ sở dữ liệu tương tự
Bạn có thể truy vấn để chiết xuất thông tin, từ những truy vấn đơn gian cho đến các truy vấn phức tạp bao gồm nhiều công thức tính toán. Bạn có thể thay đổi dữ liệu của CSDL, tất cả có thể kiểm soát nếu bạn thành thạo về SQL
Ở mức độ làm Bussiness, Sale hay End-user, bạn chỉ cần nắm chắc các truy vấn cơ bản thì có thể kiểm soát số liệu và dữ liệu một cách nhanh chóng và chính xác nhất. Trong bài viết hôm nay minh sẽ chia sẽ một số tips giúp các bạn tối ưu hơn việc sử dụng SQL, giúp cho việc truy xuất nhanh hơn và tốt hơn
1. Sử dụng index
Index giống như mục lục trong sách |
Index là một khái niệm và là yếu tố quan trọng giúp bạn tăng hiệu suất truy vấn. Giống như việc bạn đánh số trang cho một cuốn sách và dựa vào mục lục để tìm đúng trang có nội dung bạn cần dọc. Index trong SQL giúp cho câu truy vấn có thể truy xuất nhanh chóng tới dữ liệu bạn cần tìm.
Index sẽ giúp cho việc truy vấn nhanh chóng hơn, tuy nhiên giới hạn của nó là sẽ làm giảm hiệu suất khi sử dụng các lệnh thay đổi dữ liệu như Insert, Update, Delete. Vì khi bạn dùng các câu lệnh này, ngoài việc thay đổi dữ liệu thì SQL còn phải thay đổi các index. Điều này đồng nghĩa với việc thời gian sẽ tốn nhiều hơn, hơn nữa nếu có index, không gian lưu trữ sẽ yêu cầu phải lớn hơn vì ngoài việc lưu trữ data chính thì Index cũng chiếm một không gian lưu trữ khá lớn.
Nên đánh index với những cột dùng để where, group by hoặc order by
2. Chỉ lấy những dữ liệu mà chúng ta cần.
Chúng ta có thói quen sử dụng câu lệnh select một cách phổ biến là Select * ; điều này cho phép bạn lấy hết tất cả các cột đang dùng. Với nhiều table có ít cột thì điều này không ảnh hưởng, tuy nhiên có những table có nhiều cột thì việc bạn lấy tất cả các cột gây ảnh hưởng về thời gian truy vấn.
Tốt nhất là bạn nên dùng tên cột để giới hạn việc lấy data, chỉ lấy đúng những data bạn cần:
Select Name, Age, Class from Student.
3. Từ khóa "Like"
Chúng ta đều biết từ khóa Like rất hữu ích cho việc tìm kiềm trong tin theo mẫu, và chúng ta hay dùng các biểu thị %, - để tìm kiếm. Tuy nhiên, nếu dữ liệu trong bảng tìm kiếm lớn, việc đưa từ khóa like với các biểu thị %, * sẽ làm cho thời gian truy vấn lâu hơn, vì trước khi lấy dữ liệu cần tìm theo điều kiện like, SQL sẽ thực hiện đánh Index cho toàn bộ bảng dữ liệu, sau đó mới tiến hành truy vấn
Vì thế, cần chú ý và thận trọng khi dùng Like trong câu query của bạn, nếu câu query là một câu join phức tạp hoặc lượng dữ liệu gốc rất lớn.
4. Sử dụng Union
Với câu truy vấn gồm nhiều điều kiện và chúng ta cần lấy hết với các dữ liệu phù hợp với 1 trong tất cả điều kiện, chúng ta thường dùng OR để so sánh. Tuy nhiên việc dùng Or quá nhiều sẽ làm cho hệ thống nặng vì chúng phải so sánh với từng trường dữ liệu của cả bảng.
Nên dùng Union và tách từng câu dữ liệu ra thì sẽ tối ưu được thời gian truy vấn, đặc biệt với những table có đánh Index hợp lý
Ví dụ:
SELECT * FROM CLASS
WHERE NAME LIKE '4%' OR NAME LIKE '5%'
Hãy thử dùng:
SELECT * FROM CLASS WHERE NAME LIKE '4%'UNIONSELECT * FROM CLASS WHERE NAME LIKE '5%'
5. Sử dụng procedure thay cho các truy vấn phức tạp
Thay vị dùng câu select phực tạp, join nhiều table và nhiều hàm xử lý để ra được dữ liệu, hãy đóng gói chúng bẳng 1 stored procedure. Điều này giúp cho việc truy vấn data nhanh hơn:
- Store procedure đă được biên dịch và lưu vào bộ nhớ
- Giảm băng thông, đăc biệt khi truy vấn qua network hay các application
- Bảo mật và phân quyền tốt hơn.
Với những Tips trên này, ít nhiều sẽ giúp các bạn tối ưu hóa các câu lệnh truy vấn của mình, giúp cho công việc nhẹ nhàng hơn và nhanh chống hơn.
Cám ơn các bạn đã theo dõi và ủng hộ.
Cám ơn các bạn đã theo dõi, sẽ rất hoan hỉ nếu nhận được ý kiến đóng góp chia sẽ của nhiều bạn
Paul Nguyen
05-09-2024
Thông tin về mình tại đây
Không có nhận xét nào:
Đăng nhận xét