Cơ sở dữ liệu thực sự làm gì để tìm hiểu điều gì phù hợp với tuyên bố chọn ?
Để thẳng thắn, đó là vấn đề về sức mạnh vũ phu. Đơn giản, nó đọc qua từng bản ghi ứng viên trong cơ sở dữ liệu và khớp biểu thức với các trường. Vì vậy, nếu bạn có "chọn * từ bảng trong đó name = 'fred'", nó theo nghĩa đen chạy qua từng bản ghi, lấy trường "tên" và so sánh nó với 'fred'.
Bây giờ, nếu trường "table.name" được lập chỉ mục, thì cơ sở dữ liệu sẽ (có thể, nhưng không nhất thiết) sử dụng chỉ mục trước để xác định hồ sơ ứng viên để áp dụng bộ lọc thực.
Điều này làm giảm số lượng hồ sơ ứng cử viên để áp dụng biểu thức, nếu không nó sẽ chỉ làm những gì chúng tôi gọi là "quét bảng", tức là đọc từng hàng. Tuy nhiên, về cơ bản, tuy nhiên nó xác định các hồ sơ ứng cử viên là riêng biệt với cách nó áp dụng các biểu thức lọc thực tế, và, rõ ràng, có một số tối ưu hóa thông minh có thể được thực hiện.
thế nào để một cơ sở dữ liệu giải thích một gia cách khác nhau để truy vấn với một số báo cáo "nơi key1 = khóa2"?
Vâng, phép nối được sử dụng để tạo "bảng giả" mới, khi bộ lọc được áp dụng. Vì vậy, bạn có tiêu chí lọc và tiêu chí tham gia. Các tiêu chí tham gia được sử dụng để xây dựng "bảng giả" này và sau đó bộ lọc được áp dụng đối với điều đó. Bây giờ, khi diễn giải sự kết nối, nó lại giống với bộ lọc - so sánh sức mạnh vũ phu và chỉ mục đọc để xây dựng tập hợp con cho "bảng giả".
Cơ sở dữ liệu lưu trữ tất cả bộ nhớ của nó như thế nào?
Một trong những chìa khóa để có cơ sở dữ liệu tốt là cách quản lý bộ đệm I/O của nó. Nhưng về cơ bản nó phù hợp với khối RAM với khối đĩa. Với các nhà quản lý bộ nhớ ảo hiện đại, một cơ sở dữ liệu đơn giản gần như có thể dựa vào VM như trình quản lý bộ nhớ đệm của nó. DB'S cao cấp tự làm tất cả điều này.
Chỉ mục được lưu trữ như thế nào?
B + Cây thông thường, bạn nên tra cứu. Đó là một kỹ thuật thẳng về phía trước đã tồn tại trong nhiều năm. Lợi ích của nó được chia sẻ với hầu hết bất kỳ cây cân bằng nào: truy cập nhất quán đến các nút, cộng với tất cả các nút lá được liên kết để bạn có thể dễ dàng di chuyển từ nút này sang nút khác trong thứ tự khóa. Vì vậy, với một chỉ mục, các hàng có thể được coi là "được sắp xếp" cho các trường cụ thể trong cơ sở dữ liệu và cơ sở dữ liệu có thể tận dụng thông tin đó để nó có lợi cho việc tối ưu hóa. Điều này khác với việc sử dụng bảng băm cho chỉ mục, điều này chỉ cho phép bạn truy cập vào một bản ghi cụ thể một cách nhanh chóng. Trong một B-Tree bạn có thể nhanh chóng nhận được không chỉ vào một bản ghi cụ thể, nhưng đến một điểm trong một danh sách được sắp xếp.
Cơ chế thực sự lưu trữ và lập chỉ mục các hàng trong cơ sở dữ liệu thực sự khá thẳng về phía trước và được hiểu rõ. Trò chơi đang quản lý bộ đệm và chuyển đổi SQL thành các đường dẫn truy vấn hiệu quả để tận dụng những thành phần lưu trữ cơ bản này.
Sau đó, có toàn bộ đa người dùng, khóa, ghi nhật ký và giao dịch phức tạp trên đầu trang của thành ngữ lưu trữ.
Tính đến năm 2015, có [bài viết này] (http://coding-geek.com/how-databases-work/) có vẻ khá tốt. – Piovezan
Hãy thử http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf và WikiPedia này. Đây là một chút của một chủ đề rất lớn và các mô hình như RDBMS, FLATFILE vv Các phân tích cú pháp thực sự là một trong những thành phần quan trọng nhất. Cảm ơn –
Nếu đó là máy chủ SQL, tôi khuyên bạn nên sử dụng Microsoft SQL Server 2005 series (Microsoft press), đặc biệt là Công cụ lưu trữ và truy vấn .. Nó trả lời tất cả các câu hỏi của bạn và hơn thế nữa. Bạn có thể quan tâm đến một số blog sau: [Craig Freedman] (http://blogs.msdn.com/craigfr/) [Kalen Delaney] (http://sqlblog.com/blogs/kalen_delaney/) Giá trị đăng ký với [ SQLServerCentral] (http://www.sqlservercentral.com/) quá .. –