Giới thiệu series MySQL Optimize

33

Lời mở đầu

Chào các bạn,

MySQL là một hệ quản trị cơ sở dữ liệu mà mình nghĩ bất kỳ bạn đọc nào trên PhamBinh.net cũng biết. Theo Wikipedia, nó còn là hệ quản trị CSDL phổ biến nhất trên thế giới và được các developer ưa chuộng. Mà thôi, khỏi phải trình bày về độ phổ biến của MySQL nữa, bởi ai cũng biết rồi mà.

Tuy nhiên có một điều lạ. Mình có thể dễ dàng tìm thấy các tài liệu (Tiếng Việt) viết về cách sử dụng MySQL như “cách sử dụng câu lệnh select, cách sử dụng lệnh where, group by…”, nhưng khi thử tìm kiếm các tài liệu về cách tối ưu MySQL, hay các kiến thức giúp bạn tăng tốc cho MySQL thì số lượng kết quả lại hạn chế, đa phần các bài viết đều trình bày qua loa, nhắc tới một số khái niệm về index (chỉ mục) gì đó… rồi tắt ngúm. Có những bài viết rõ hay, tác giả cũng cẩn thận chia thành các phần, nhưng chỉ tìm thấy phần 1, còn phần 2 thì… chắc là quên chưa viết.

Tại sao lại vậy, tối ưu MySQL lẽ ra phải là một chủ đề đáng để bàn tán sôi nổi chứ nhỉ. Thử suy nghĩ, thì mình đoán là do một số lý do sau:

  • MySQL thường được sử dụng trong các dự án web nhỏ, chẳng mấy khi đạt tới mức đủ lớn để là tối ưu.
  • Việc tối ưu không phải nói là làm được ngay, mà phải có trường hợp cụ thể, hơn nữa còn phải phân tích và xem xét nhiều yếu tố. Vì vậy mà công việc này thường không phù hợp với những “developer chỉ biết Tiếng Việt”, thay vào đó là những dev có kinh nghiệm, mà dev có kinh nghiệm thì thường search bằng Tiếng Anh.
  • MySQL có thể truy vấn chậm, nhưng chậm thì không phải là bug, thôi thì đi fix bug đã, fix xong thì tính việc tối ưu sau. Nhưng khổ nỗi fix mãi chẳng hết bug.
  • Nhiều bạn còn chẳng biết trên đời này có khái niệm tối ưu, chỉ biết SELECT, INSERT, UPDATE, DELETE là hết.

Để đóng góp thêm một phần kiến thức cho cộng đồng, cũng như thể hiện tinh thần “Sharing is the best way to learn” nên mình sẽ gửi tới các bạn một series tổng hợp các kiến thức để tối ưu MySQL.

Tối ưu ở đây được thể hiện ở các yếu tố sau:

  • Dung lượng lưu database tối ưu
  • Tốc độ truy vấn tối ưu
  • Câu truy vấn tối ưu
Tối ưu, tăng tốc cho cá heo MySQL

Nội dung series

Series sẽ bao gồm các bài viết sau:

  • Giới thiệu series
  • Các loại storage engine trong MySQL
  • Tối ưu Data types trong MySQL
  • Debug câu lệnh SQL với từ khóa Explain
  • MySQL Index – Truy vấn nhanh như gió
  • Tìm hiểu MySQL Prefix Index
  • Tìm hiểu MySQL Descending Index
  • Tìm hiểu MySQL Composite Index
  • Tìm hiểu MySQL Index Cardinality
  • Tìm hiểu MySQL Query Caching
  • MySQL best practice – Sử dụng MySQL theo cách “khôn ngoan”

Mời các bạn cùng theo dõi.