Thứ Sáu, 13 tháng 1, 2023

Tăng tốc database index phần 4 - Index chậm

Như bài trước đã viết, tốc độ duyệt cây tìm kiếm cân bằng là siêu nhanh, thế mà không hiểu sao mình đã đánh index rồi mà lệnh truy vấn vẫn chậm, mấy thằng cha làm cơ sơ dữ liệu như Larry Ellison nó lừa mình kiếm tiền tỷ phải không? Ngày xửa ngày xưa, từ hồi anh em cây khế còn chơi với nhau, cho tới bây giờ có một giai thoại được truyền tai nhau giữa các dev là index để lâu càng ngày càng chậm, lâu lâu phải rebuild lại index một lần. Thực tế thì không phải như vậy, cây index luôn luôn có một độ sâu cố định và luôn được duy trì ở trạng thái cân bằng. Việc đánh index rồi mà truy vấn vẫn chậm có thể còn hai nguyên nhân nữa. Đầu tiên ta phải hiểu khi truy vấn dữ liệu theo index gồm 3 bước

Sửa bài viết

Tăng tốc database index phần 3 - B-Tree

Index leaf node được lưu trữ theo dạng Linked List về mặt logic, còn về cấu trúc lưu trữ vật lý, mỗi leaf node có thể lưu lung tung, không có thứ tự gì, nó giống một quyền từ điển mà các trang bị xáo trộn, khi ta cần tra từ "Phở" mà đang lật tới trang có từ "Cơm" không có nghĩa là từ Phở chắc chắn ở sau từ Cơm. Để đáp ứng việc tìm kiếm nhanh trong các trang xáo trộn này , database cung cấp một kiểu dữ liệu khác là Cây Tìm Kiếm Cân Bằng (a balanced search tree) gọi ngắn là B-Tree (chú ý các bạn không nên nhầm với Cây nhị phân Binary tree nhé).
Sửa bài viết

Tăng tốc database index phần 2 - Leaf Nodes

Bài trước khái niệm cơ bản

Đầu tiên mình định dịch ra là nút lá, nhưng nghe nó không được hay cho lắm nên quyết định giữ nguyên tên của nó là Leaf Nodes.

Sửa bài viết

Tăng tốc database index phần 1 - khái niệm cơ bản

Phần đầu tiên trong chuỗi bài là các phần liên quan tới database, nhiều bạn thích trình bày các vấn đề khác về database tuy nhiên theo kinh nghiệm cá nhân mình thấy hiểu về index trong db rất quan trọng trong quá trình nâng cao hiệu năng của chương trình, đôi khi chỉ cần đánh index thôi mà tốc độ đang từ rùa bò trở nên tốc độ bàn thờ . Nhưng có phải index luôn giúp truy vấn nhanh hơn không? Đầu tiên là khái niệm index là gì?

Sửa bài viết

Thứ Năm, 12 tháng 1, 2023

Buffer là gì? Sự khác biệt giữa Cache và Buffer

Buffer và Cache có chức năng khá giống nhau, tuy nhiên cả hai lại được ứng dụng để mang lại những lợi ích khác nhau cho hệ thống. Vì vậy, bài viết này sẽ giúp bạn hiểu được Buffer là gì và sự khác biệt giữa nó với Cache.

Sửa bài viết

Buffer là gì? Sự khác biệt giữa Cache và Buffer

Buffer và Cache có chức năng khá giống nhau, tuy nhiên cả hai lại được ứng dụng để mang lại những lợi ích khác nhau cho hệ thống. Vì vậy, bài viết này sẽ giúp bạn hiểu được Buffer là gì và sự khác biệt giữa nó với Cache.

Sửa bài viết

Thứ Sáu, 6 tháng 1, 2023

Hướng dẫn cài đặt MariaDB Galera Cluster

MariaDB là hệ thống cơ sở dữ liệu quan hệ ( Database Management System) phổ biến hiện nay. Được tách ra mã mở do cộng đồng phát triển của hệ quản trị cơ sở dữ liệu MySQL.

Sửa bài viết

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master