ĐĂNG KÝ ĐỂ NHẬN THÔNG TIN MỚI NHẤT

Kiến thức về tối ưu SQL có áp dụng cho Database Game Server được không?

Một anh em hỏi tôi rằng: các kiến thức tối ưu SQL mà tôi chia sẻ, có áp dụng được cho Database Game Server được không? Bài viết này sẽ giải đáp thắc mắc của anh em nhé

 

1. Có thể áp dụng kiến thức tối ưu SQL vào Database Game Server được không?

Tối ưu bản chất là Tư Duy, và anh em hoàn toàn có thể áp dụng các kỹ thuật tối ưu SQL trong những nội dung mà tôi đã chia sẻ vào Database Game Server.

Dưới đây là một số trường hợp ví dụ cụ thể

1.1. Hiểu rõ về Lock để giải quyết tranh chấp tài nguyên khi xử lý những Transaction trong Database

Anh em có thể đối mặt với hiện tượng Lock, Dead Lock ảnh hưởng tới hiệu năng hoạt động của Database.

Để giải quyết triệt để vấn đề này thì chúng ta cần hiểu rất rõ những kiến thức sau:

  • Lock là gì?
  • Có mấy loại Lock?
  • Lock Conflict là gì?
  • Dead Lock là gì?
  • Anh em DEV cần làm gì khi có Lock Conflict?
  • Anh em DEV cần làm gì khi có Dead Lock?

Lưu ý ở đây rằng: Chúng ta không thể xử lý Lock bằng phương án tăng tài nguyên của phần cứng (dù ở hạ tầng On-premise hoặc hạ tầng Cloud).

Anh em có thể đọc bài viết về Lock mà tôi đã chia sẻ tại đây: Xử lý tranh chấp tài nguyên – SQL Lock Conflict là gì?

1.2. Hiểu rõ về cách thức hoạt động của câu lệnh SQL

Cách thức một câu lệnh SQL hoạt động hoàn toàn khác với cách mà chúng ta viết câu lệnh SQL.

Ví dụ: nhìn từ phía lập trình viên, chúng ta sẽ có một số kiểu JOIN như sau:

  • INNER JOIN
  • LEFT OUTER JOIN
  • RIGHT OUTER JOIN
  • FULL OUTER JOIN

Tuy nhiên, cách thức mà Database hoạt động, chúng lại sử dụng “những thứ Join khác”, tôi gọi là “Physical Join” (Giải thuật thật sự để Database Server có thể so khớp dữ liệu và thực hiện đúng yêu cầu của Logical Join – các loại Join mà tôi kể tên bên trên).

Khi xử lý một câu lệnh SQL bị chậm, chúng ta cần biết về 6 bước sẽ thực hiện của hệ thống kể từ khi nhận được “yêu cầu”, cho tới khi trả kết quả cho người dùng.

tối ưu cơ sở dữ liệu bước phân tích câu lệnh sql

 

 

Trong 6 bước trên, các một nội dung đặc biệt quan trọng cần hiểu rõ, đó là: Chiến lược thực thi của một câu lệnh SQL.

Tôi đã từng chia sẻ một số bài viết về tối ưu, dựa trên việc hiểu rõ các bước thực hiện của một câu lệnh, anh em có thể đọc các bài viết này tại đây:

1.3. Hiểu về những sai lầm ảnh hưởng đến hiệu năng khi dữ liệu tăng trưởng

Thông thường, các hệ thống sẽ bị chậm “dần dần” sau một thời gian hoạt động, Database Game Server cũng không phải ngoại lệ.

Việc chậm dần này có rất nhiều yếu tố:

  • Do dữ liệu các table tăng trưởng, nêu thời gian thực hiện của hệ thống cũng lâu hơn
  • Do chiến lược thực thi của câu lệnh bị thay đổi (mà anh em DEV không biết hoặc không phát hiện ra)
  • Do các objects bị phân mảnh
  • Do cấu hình các tham số của database chưa phù hợp
  • Và nhiều lý do khác nữa

Tôi từng có bài viết về vấn đề bảng bị phân mảnh, dẫn tới tường hợp hiệu năng ảnh hưởng cực kỳ tệ.

Các anh em có thể đọc bài viết này tại đây: Tối ưu câu lệnh từ 9s còn vài mili giây như thế nào?

1.4. Hiểu về các kỹ thuật thay đổi chiến lược thực thi, tối ưu SQL trong các trường hợp đặc biệt

Kỹ thuật tối ưu SQL này, anh em có thể tìm đọc các bài viết về HINT của tôi trước đây

 

1.5. Hiểu về những vấn đề hiệu năng của câu lệnh DML

Trong cơ sở dữ liệu, có nhiều kỹ thuật để tăng tốc khi thực hiện mục tiêu (thêm, sửa, xóa) một lượng lớn dữ liệu.

Anh em có thể xem một số bài vTiết, demo của tôi tại đây:

1.6. Rất nhiều những kỹ thuật tối ưu SQL khác nữa

2. Nếu bạn muốn biết câu trả lời cho câu hỏi “Tối ưu SQL bắt đầu từ đâu”?

Bạn có thể xem Video tôi chia sẻ về vấn đề này.

Trong phần chia sẻ này bạn sẽ biết được:

  • Các thách thức phải đối mặt khi bạn muốn làm chủ kỹ năng tối ưu SQL
  • Những sai lầm phổ biến
  • Và các bí mật 

Bạn có thể xem chi tiết tại đây: Click vào đây.

3. Nếu bạn là DEV và muốn toàn bộ những kinh nghiệm về tối ưu SQL của tôi, để trở nên KHÁC BIỆT so với các đồng nghiệp trên thị trường?

Hãy đọc về chương trình “Từ điển tối ưu 100x hiệu năng” tại đây: Click vào đây để tìm hiểu chương trình.

4. Thông tin tác giả

Tác giả: Trần Quốc Huy – Founder & CEO Wecommit.

Facebook: https://www.facebook.com/tran.q.huy.71

Youtube: https://www.youtube.com/channel/UCtsYzL7iN7rBCPnkjYp4XYw

Zalo: 0888549190

Email: huy.tranquoc@wecommit.com.vn

Views: 1240





    Câu hỏi bảo mật

    Trả lời

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    Ask ChatGPT
    Set ChatGPT API key
    Find your Secret API key in your ChatGPT User settings and paste it here to connect ChatGPT with your Tutor LMS website.