Quy tắc 1: Giảm thiểu sự kết nối tới MySQL Server.
Khi kết nối tới MySQL, chúng ta thường sử dụng hàm kết nối là mysql_connect() và hàm mysql_pconnect().
Theo lý thuyết, mỗi lần sử dụng hàm mysql_connect(), hệ thống sẽ khởi tạo một kết nối mới tới CSDL, còn khi sử dụng hàm mysql_pconnect(), hệ thống sẽ tận dụng kết nối đã được thiết lập trước đó. Nếu ứng dụng của chúng ta gọi nhiều lần trong một khoảng thời gian ngắn, hàm mysql_connect() sẽ là yếu tố làm cho hệ thống chạy rất chậm vì nó chiếm một lượng đáng kể tài nguyên của hệ thống . Vì vậy, khi cần hãy cố gắng sử dụng hàm kết nối mysql_pconnect() thay cho mysql_connect().

Quy tắc 2: Chấp nhận thừa dữ liệu để có thể đổi lấy tăng tốc độ truy vấn

Ngày xưa khi dung lượng là một điều xa xỉ  thì ngày nay nó là một điều không còn quan trọng đối với một ứng dụng. Một thiết kế dữ liệu theo dạng chuẩn có thể dễ nhìn, dễ hiểu đơn giản, nhưng khi truy vấn dữ liệu, đôi khi chúng ta sẽ phải đau đầu với việc phải liên kết rất nhiều bảng quan hệ(JOIN) có khi chỉ để lấy ra một record. Vì vậy, trong một số trường hợp, chúng ta hãy phá bỏ tính đẹp đẽ trong thiết kế dữ liệu để tăng tốc độ truy vấn.

Chú ý : truy vấn trên một bảng sẽ nhanh hơn rất nhiều lần khi truy vấn trên nhiều bảng quan hệ.

Quy tắc 3: Thiết lập các trường index và truy vấn dữ liệu thông qua các điều kiện dựa trên chỉ số.

Khi còn học có một số môn mà chúng ta phải đau đầu nhức óc nhiều khi không biết sử dụng nó vào đâu, thì khi ra thực tế mới biết có rất nhiều trường hợp vận dụng nó sẽ làm cho chúng ta rất ư là pro ^^ Điển hình là môn  Cấu trúc dữ liệu và giải thuật, đối với thằng này thì  hẳn chúng ta cũng phải nhớ đến các giải thuật tìm kiếm nhanh với cách tìm dựa trên bảng băm hoặc trên mảng đã sắp xếp (thuật toán tìm kiếm nhị phân). Các trường được thiết lập ở dạng index sẽ được sắp xếp trên một file riêng, khi chúng ta truy vấn dữ liệu thông qua các trường index, các giải thuật tìm kiếm sẽ phát huy tính hiệu quả của nó, đặc biệt là các trường index dạng int. Vì vậy, hãy tận dụng các index này triệt để nhá.

Quy tắc 4: Chỉ lấy đúng và đủ dữ liệu cần thiết

Nhiều người chắc là làm biếng ^^, thường sử dụng dấu (*) trong select. Việc này là một điều cấm kỵ trong việc lấy dữ liệu nó sẽ làm cho hệ thống làm việc một cách hết công suất, vì phải lấy dữ liệu toàn bộ các trường trong bảng. Khi dữ liệu của chúng ta lớn thì nó sẽ là trở ngại cho việc tối ưu hiệu suất của ứng dụng. Vì vậy, thay vì select *, hãy chỉ select những trường cần thiết.

Một vấn đề nữa là khi sử dụng hàm mysql_fetch_array(), nhiều người thường bỏ qua các tham số tuỳ chọn. Lời khuyên là hãy sử dụng tham số mysql_assoc(), khi đó hệ thống sẽ trả về một mảng với chỉ số là tên trường, như vậy các bạn sẽ dễ hình dung và đỡ tốn bộ nhớ.

Quy tắc 5: Giải phóng bộ nhớ ngay sau khi sử dụng xong

Sau khi thực hiện các truy vấn và thực hiện xong các phép tính toán với các dữ liệu lấy được, hãy sử dụng mysql_free_result() để nó giải phóng bộ nhớ đệm.

[thongbao]

  1. Nếu có thắc mắc gì các bạn để lại comment bên dưới mình sẽ trả lời sớm nhất có thể.
  2. Cảm ơn các bạn đã đọc.

[/thongbao]

5 quy tắc tăng tốc độ xử lý CSDL của MySQL