Top 10 thực hành tốt nhất trong MySQL
MySQL được sử dụng rộng rãi trên thế giới và nó là một mã nguồn mở về hệ thống quản lý cơ sở dữ liệu quan hệ. Nó đã trở nên phổ biến vì hiệu quả nhanh nhất, độ tin cậy cao và dễ sử dụng. Bài viết này trình bày một số các thực hành tốt nhất trong MySQL.
1. Luôn luôn sử dụng kiểu dữ liệu thích hợp
Sử dụng các kiểu dữ liệu dựa trên bản chất của dữ liệu. Nếu bạn sử dụng các kiểu dữ liệu không thích hợp nó có thể tốn nhiều không gian hơn hoặc có thể dẫn đến sai sót.
Ví dụ: Sử dụng varchar (20) để lưu trữ các giá trị thời gian ngày thay vì DATETIME datatype sẽ dẫn đến sai sót trong quá trình cập nhật thời gian liên quan đến tính toán và đó cũng là có thể trường hợp của lưu trữ dữ liệu không hợp lệ.
2. Sử dụng CHAR (1) trên VARCHAR (1)
Nếu dữ liệu là một chuỗi kí tự đơn, bạn hãy sử dụng CHAR (1) thay vì VARCHAR (1) vì VARCHAR (1) sẽ mất thêm byte để lưu trữ thông tin.
3. Sử dụng CHAR datatype để lưu trữ dữ liệu chỉ có chiều dài cố định
Ví dụ: Sử dụng char (1000) thay vì varchar (1000) sẽ tiêu thụ nhiều không gian hơn nếu chiều dài của dữ liệu ít hơn 1000.
4. Tránh sử dụng các định dạng ngày trong khu vực
Khi bạn sử dụng DATETIME hoặc DATE datatype luôn luôn sử dụng định dạng ngày YYYY-MM-DD hoặc định dạng ngày tháng theo tiêu chuẩn ISO phù hợp với SQL Engine của bạn. Định dạng khác trong khu vực như DD-MM-YYY, MM-DD-YYYY sẽ không được lưu trữ đúng cách.
5. Thiết lập index cho các column
Hãy chắc chắn để các cột có index được sử dụng trong mệnh đề JOIN để câu truy vấn trả về kết quả nhanh chóng.
Nếu bạn sử dụng câu lệnh UPDATE có liên quan đến nhiều hơn một bảng, hãy chắc chắn rằng tất cả các cột được sử dụng để join các bảng được đã được đánh index.
6. Không sử dụng các function trên các cột được đánh index
Sử dụng các function trên các cột được đánh index là không tận dụng được chức năng của index.
Giả sử bạn muốn lấy dữ liệu các mã khách hàng có ký tự đầu tiên là AK, không viết
SELECT columns FROM table WHERE left (customer_code,2)=’AK’
hãy viết lại nó bằng cách sau:
SELECT columns FROM table WHERE customer_code like ‘AK%’
câu này sẽ sử dụng index cho kết quả nhanh hơn.
7. Sử dụng SELECT * chỉ khi cần thiết
Đừng viết SELECT * trong các câu query.
Nếu có nhiều cột trong bảng, tất cả sẽ được trả lại mà sẽ làm chậm thời gian xử lý.
Bạn hãy liệt kê rõ ràng và cụ thể các tên cột thực sự cần thiết.
8. Sử dụng ORDER BY chỉ khi cần thiết
Sử dụng khi bạn muốn hiển thị các kết quả đã được sắp xếp. Làm điều này trong SQL có thể làm chậm thời gian xử lý câu sql trong môi trường đa người dùng.
9. Chọn đúng cơ sở dữ liệu
Nếu bạn phát triển một ứng dụng đọc dữ liệu thường xuyên hơn so với văn bản (ví dụ: công cụ tìm kiếm), chọn MyISAM storage engine.
Nếu bạn phát triển một ứng dụng ghi dữ liệu thường xuyên hơn so với đọc (ví dụ: các giao dịch ngân hàng thời gian thực), chọn InnoDB storage engine.
Chọn storage engine sai sẽ ảnh hưởng đến hiệu suất.
10. Sử dụng EXISTS bất cứ nơi nào cần thiết
Nếu bạn muốn kiểm tra sự tồn tại của dữ liệu, đừng nên sử dụng
If (SELECT count(*) from Table WHERE col=’some value’)>0
thay vào đó, hãy sử dụng EXISTS
If EXISTS(SELECT * from Table WHERE col=’some value’)
thời gian xử lý sẽ nhanh hơn.
Nguồn: https://bigdata-madesimple.com/top-10-best-practices-in-mysql/