Các giải pháp tăng tốc Website (Phần 1)

14:28 24/05/2022

Những yếu tố nào làm website chạy chậm? Làm thế nào để website hoạt động nhanh hơn? Hãy cùng Cao đẳng FPT Mạng cá cược bóng đá tìm ra câu trả lời tại bài viết dưới đây.

Tại sao cần tăng tốc?

Tốc độ website là một yếu tố quan trọng trong vận hành. Website chạy nhanh giúp người dùng thoải mái sử dụng, tiết kiệm thời gian. Website chạy nhanh cũng là yếu tố để Google hiện ở thứ hạng cao trong kết quả tìm kiếm. Vì vậy nếu biết cách tăng tốc, website sẽ chạy nhanh, được đánh giá cao và dễ dàng tiếp cận người dùng.

Mô hình hoạt động của web

Trong mô hình hoạt động của dịch vụ web, khi user (người dùng) muốn xem một trang web (bằng cách gõ địa chỉ, nhắp 1 link hoặc submit form) thì browser sẽ tạo request, http sẽ vận chuyển request đến server. Web server sẽ chuyển cho chương trình xử lý web động (PHP) để tạo nội dung, PHP sẽ tương tác với database để lấy dữ liệu…Thứ tự các bước cụ thể như sau:

  1. User gõ 1 địa chỉ hoặc nhắp 1 link hoặc submit form
  2. Request được http vận chuyển qua hệ thống mạng đến server .
  3. Server xử lý : nếu là trang html thì Apache đọc file html đổ về ngay. Nếu user request trang động thì apache sẽ chuyển về cho chương trình xử lý web động.
  4. Khi code html đổ về, browser sẽ xử lý: các  tag nào chứa tài nguyên bên ngoài sẽ tiếp tục tạo request để lấy tiếp về (img, link, script, audio, video)

Các giải pháp tăng tốc website

Sau đây là hướng dẫn thực hiện các giải pháp tăng tốc website, giúp cho website chạy nhanh hơn:

  1. Server hosting: Vị trí và khả năng server
  2. Phương pháp giảm bớt request
  3. Tối ưu với MySQL Database.
  4. Nén code html trả về cho browser
  5. Client cache với htaccess
  6. Server file caching

Tiếp đến, hãy tìm hiểu chi tiết từng giải pháp tăng tốc website:

1. Server Hosting – Vị trí và khả năng server

Giải pháp tăng tốc thứ nhất là chọn server hostting: vị trí hosting phải gần với đa số người dùng và khả năng server phải cao thì website mới có thể chạy nhanh.

Về vị trí server hosting: Hình dưới là mô hình cáp quang kết nối xuyên lục địa của một hãng cáp. Hãy tưởng tượng bạn đang chọn 1 server ở Mỹ hay Chile, khi đó request từ 1 người ở Việt Nam phải qua chặng đường xa mới đến được server để lấy website và quay về , dẫn đến website chạy chậm với người dùng. Do đó hãy chọn hosting ở server có vị trí địa lý gần với phần lớn người dùng nhé.

Về Khả năng server: Hãy chọn server công nghệ cao (CPU, RAM, Đĩa) sẽ giúp thực thi web nhanh hơn, khả năng server thể hiện qua gói hosting của nhà cung cấp hoặc các thông số kỹ thuật của server. Server chất lượng cao tất nhiên chạy nhanh hơn server giá rẻ.

Các trang web tham khảo về các gói hosting:

2. Giảm bớt Request – Số lượng và dung lượng

Giải pháp tăng tốc website thứ hai là giảm bớt số lượng tài nguyên bên ngoài cần nạp vào trang web (hình ảnh, css, js web font) , đồng thời giảm bớt dung lượng (độ lớn) của các file tài nguyên – đặc biệt là file hình xuống đến mức độ vừa đủ dùng.

  • Giảm số lượng tài nguyên ngoài trang

Giảm bớt số lượng hình, số lượng file css, file javascript, số lượng web font … trong trang. Nếu quá nhiều thì trình duyệt phải mất nhiều thời gian để tải trang, nếu có thể thì bạn có thể gom các file javascript, các css lại với nhau để giảm sô lượng request.

Để xem số lượng request trong trang web, bạn gõ phím F12 trong trình duyệt để mở Developer Tool, sau đó nhắp tab Network. Tiếp tục là gõ địa chỉ trang web rồi Ctrl – F5 sẽ thấy số lượng request của trang.

Mỗi trang web chỉ nên khoảng <400 request thôi nhé. Như trong hình dưới, trang web có đến 626 tài nguyên bên ngoài là quá nhiều.

  • Giảm bớt dung lượng tài nguyên

Nếu các file hình, file css, file js có kích thước lớn quá thì phải mất nhiều thời gian để tải từ server về. Bạn hãy giảm kích thước các file hình, file css, js…xuống nhé , điều đó sẽ giúp giảm bớt dung lượng đổ về từ server,  như vậy trang web sẽ chạy nhanh hơn.

Hãy xem hình dưới, trang web có còn hình 1.jpg, 2.jpg, 3.jpg. Ba hình này kích thước đều quá lớn, đến khoảng gần 20MB thì không thể chấp nhận, mỗi hình trong trang bình thường chỉ nên có kích thước 100-300KB , không nên lớn hơn.

Để giảm file hình, dùng các chương trình xử lý ảnh (như photoshop , paint, windows photo, snagit…) để giảm bớt chất lượng hình, có thể giảm bớt chiều dài chiều rộng của hình  thì độ lớn file hình sẽ giảm lại.

Hãy xem hình dưới , hình 1.jpg có kích thước 5616×3744 , độ lớn file là 18.6MB. Sau khi resize và giảm bớt chất lượng (vẫn coi đẹp trong web) thì file chỉ còn 257KB. Quá OK phải không?

3. Tối ưu Mysql Database

Giải pháp tăng tốc website thứ ba là tối ưu hoạt động lấy dữ liệu từ database. Tối ưu database và lệnh SQL là việc không được bỏ qua khi bạn muốn trang web chạy nhanh hơn. Hãy xem xét các gợi ý sau70

  • Bớt join các bảng nếu có thể

Trong câu lệnh sql, chỉ nên join bảng khi thật sự cần lấy dữ liệu từ nhiều table, nếu không thì phí thời gian. Ví dụ khi câu lệnh sau (join 3 bảng):  select idTin, TieuDe, Ten, name from tin, loaitin, users where tin.idLT= loaitin.idLT and tin.idUser = Users.id and tin.lang=’vi’; thì  thời gian chạy của mysql tốn hết 0.003 giây.

Trong cùng điều kiện,  khi chạy câu lệnh sau (không join bảng) select idTin, TieuDe from tin where tin.lang=’vi’; thì chỉ tốn 0.002 giây.

Tất nhiên khi cần thiết thì join bảng, nhưng chỉ khi cần dùng dữ liệu ở nhiều bảng thì mới join, còn không không join.

  • Sử dụng index cho các field

Các field nào trong table mà cần dùng cho tìm kiếm và có nhiều giá trị trùng nhau thì nên tạo index cho field đó.

Việc tạo Index giống như đánh mục lục, giúp tìm kiếm được nhanh hơn. Tưởng tượng bạn có 1 quyển sách dày, tìm từ gì đó trong sách bằng cách lật từng trang thì thường là lâu hơn là dùng mục lục phải không? Giả sử bạn có một table với cấu trúc và dữ liệu như sau:

Với table như trên  có 87734 rows, giả sử chúng ta chạy câu lệnh : select idTin, TieuDe from tin where tin.idLT = 12;

Khi chưa tạo index cho cột idLT: dùng lệnh explain, mysql sẽ cho biết để chạy câu lệnh trên, nó sẽ dò trong tất cả các dòng của table (ALL) và số dòng trong table phải tìm là 87734 và thời gian thực thi câu lệnh này lả 0.166 giây.

Khi đã tạo index cho cột idLT, cũng dùng lệnh explain, mysql sẽ cho biết để chạy câu lệnh trên, nó sẽ tham khảo trong bảng chỉ mục (ref) và số dòng mà nó dùng để dò tìm là 43867 , và thời gian thực thi câu lệnh này lả 0.077 giây.

Tạo chỉ mục cho field sẽ giúp mysql chạy nhanh hơn. Field mà có nhiều giá trị trùng lặp thì việc tạo chỉ mục sẽ càng giúp mysql chạy nhanh hơn vì số dòng mà mysql dò tìm sẽ ít đi.

Việc tạo index cho field không hề khó. Bạn chỉ việc vào xem cấu trúc table rồi nhìn vào mục Indexes, sẽ thấy các index của table, bạn có thể bổ sung xóa các index thoải mái. Tham khảo hình sau như là gợi ý tạo index cho cột idLT.

  • Chỉ chọn các field cần dùng

Cũng liên quan đến database, hãy cố gắng  chỉ chọn các field cần dùng, không sử dụng  SELECT * vì như thế là bạn chọn mọi field trong table, rất nhiều khả năng có những field lấy từ mysql về mà không dùng, dẫn đến phí thời gian vô ích. Ví dụ bạn chỉ cần 2 field id và TieuDe trong bảng Tin thì viết câu lệnh như sau select id, TieuDe From Tin.

(Còn tiếp)

 

Giảng viên Nguyễn Văn Long
Bộ môn CNTT – Cao đẳng FPT Mạng cá cược bóng đá HCM

Cùng chuyên mục

Đăng Kí học Fpoly 2023

Bình Luận