Tăng tốc độ xử lý CSDL MySQL
Khi kết nối tới CSDL MySQL, chúng ta có 2 hàm kết nối là mysql_connect() và mysql_pconnect(). Về cơ bản thì hai hàm này có các tham số y hệt nhau, nhưng nội hàm của chúng có những khác biệt đáng kể.
Theo lý thuyết, mỗi lần gọi 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 trang Web của chúng ta được triệu gọi nhiều lần trong một khoảng thời gian ngắn, hàm mysql_connect() sẽ tiêu tốn một lượng đáng kể tài nguyên của hệ thống để thiết lập kết nối. Vì vậy, hãy cố gắng sử dụng hàm kết nối mysql_pconnect().
Quy tắc 2: Thiết lập các trường index và cố gắng truy vấn dữ liệu
thông qua các điều kiện xác lập trên chỉ số.
Nếu các bạn học
qua cấu trúc dữ liệu và giải thuật, hẳn chúng ta cũng phải nhớ đến các
giải thuật tìm kiếm nhanh. Chúng ta đã đúc kết được rằng giải thuật tìm
kiếm là nhanh nhất với cách tìm dựa trên bảng băm hoặc trên mảng đã sắp
xếp (với thuật toán tìm kiếm nhị phân nổi tiếng). 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ả tối đa của nó, đặc biệt là các trường index dạng số.
Vì
vậy, hãy cố gắng thiết kế các truy vấn cũng như CSDL sao cho tối ưu
nhất dựa trên nguyên tắc chỉ số này.
Quy tắc 3: Chấp nhận dư thừa dữ liệu
Một thiết kế dữ liệu
theo dạng chuẩn 4 có thể rất đẹp mắt, nhưng khi truy vấn dữ liệu, chúng
ta sẽ phải "xới tung" nhiều bảng quan hệ có khi chỉ để lấy ra một
record. Ngày xưa, khi giá thành ổ cứng cao ngất ngểu, dung lượng ổ cứng
bé tẹo nên các cụ phải thiết kế dữ liệu ở dạng "tiêu chuẩn cao" nhằm
giảm dung lượng lưu trữ, nhưng ngày nay, dung lượng lưu trữ không còn là
vấn đề đáng lo lắng, vì vậy trong một số trường hợp, hãy chịu khó hi
sinh tính đẹp đẽ của chuẩn 4 để tăng tốc độ truy vấn. Nên nhớ rằng 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 4: Chỉ lấy đúng và đủ dữ liệu cần thiết
Nhiều
người thường thích truy vấn dạng "Select *...". Dấu * ở đây sẽ bắt hệ
thống làm việc mệt nhọc hơn vì phải xử lý nhiều dữ liệu hơn. Dữ liệu trả
về cũng tiêu tốn nhiều bộ nhớ hơn. 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. Nếu
có thể, 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ớ vì phải phát sinh thêm một mảng với chỉ số dạng số.
Quy tắc 5: Giải phóng bộ nhớ ngay sau khi sử dụng xong
Theo
mặc định thì PHP sẽ giải phóng bộ nhớ sau khi chạy xong toàn bộ chương
trình, nhưng với một cỗ máy chủ già nua cũ kỹ với hàng trăm lượt truy
cập một lúc thì 1 KB bộ nhớ cũng là một tài nguyên cực kỳ quý giá. Vậy
tại sao chúng ta không giải phóng bộ nhớ cho những thứ không dùng đến?
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
bản ghi lấy được, hãy chịu khó nhét cái function mysql_free_result()
vào ngay nhé.
Các tin khác cùng chuyên mục
- Kỹ thuật lập trình HTML/CSS mới nhất 2020 - 04
- Funny web2.0
- Giải thử vài câu đề thi tốt nghiệp ptth môn toán
- MỘT NGÀY PHẢI KHÁC MỌI NGÀY
- Level 1 - Lập trình hướng đối tượng (P2)
- Level 1 - Lập trình hướng đối tượng (P1)
- PHP 5.3, Phần 3: Không gian tên
- PHP 5.3, Phần 2: Bao đóng và các hàm lambda
- PHP 5.3, Phần 1: Các thay đổi về giao diện đối tượng
- Giới thiệu JSON
Liên kết
Tin được quan tâm nhất
- Ant Group của Jack Ma hé lộ bước đi đầu tiên...
- Ô tô giao hàng tự lái sẽ bắt đầu hoạt...
- Clip cô giáo phạt học sinh tự ném vỡ...
- Tiền điện tử lớn thứ ba thế giới Ripple...
- Joe Biden kêu gọi hiện đại hóa hệ thống...
- Viettel khai trương nền tảng Hồ sơ sức khỏe...
- Các hãng di động nên ngừng cãi nhau về việc...
- Công nghệ AI của Alibaba và Tân Hoa Xã: Đối...
- Một năm đáng thất vọng của YouTube trên toàn...
- EVN lần đầu diễn tập an toàn thông tin mạng...
- Đây là chiếc iPhone được mua nhiều nhất...
- Bộ Tài chính ra quy chế mới về quản lý, sử...
- Cập nhật nhãn mới giúp người tiêu dùng...
- Kiếm tiền từ 5G: Thách thức lớn nhất của...
- "Hô biến" iPhone thành cục đá: Có thể bị...
- Phí trước bạ ô tô không gia hạn giảm, sẽ...
- Tại sao Apple chế tạo ô tô?
- Viettel cung cấp dịch vụ 5G tại thành phố...
- Đội KingTigerPrawn của Hàn Quốc giành giải...
- Thứ trưởng Phan Tâm: “Triển khai hạ tầng 5G...
- Nhiều mẫu iPhone chính hãng đang khan hàng tại...
- Mỹ quy định drone cần có ID, trang bị đèn ban...
- Trung Quốc điều tra Alibaba: Bài học cho Jack Ma...
- Chuyên gia dự báo 5 xu hướng tấn công mạng...
- Apple MagSafe vẫn còn rất nửa vời
- Các tỉnh cuối cùng đã ngừng phát sóng...
- 55/63 tỉnh thành sử dụng Zalo trong cải cách...
- Headline: CR7: “Mong muốn của tôi là luôn...
- Samsung dự kiến xuất xưởng dưới 300 triệu...
- Vì sao Trung Quốc ‘sờ gáy’ Alibaba?
- Những smartphone được người Việt mua nhiều...
- Vì sao mua hàng ở sàn TMĐT Mỹ không cần...
- Đằng sau bức ảnh động viên Đà Nẵng chiến...
- VNPT cung cấp MyTV Box 2020 - Tính năng nâng cấp...
- Clip hành động ghê tởm của shipper trước khi...
- Các đội thi chung kết WhiteHat Grand Prix 6 phát...