Các cột không phải là chỉ mục, được sắp xếp trên đĩa cùng với chỉ mục, trong MySQL, trong MyISAM và InnoDB?
Một suy nghĩ không chính xác mà tôi bắt đầu viết:
Tôi nghĩ rằng có lẽ là không, vì chúng không được lập chỉ mục; nếu chúng được sắp xếp có nghĩa là chúng là các chỉ mục.
Điều này không đúng vì mỗi cột chỉ mục được sắp xếp theo thứ tự nội dung của chính nó, nhưng tôi đang hỏi về việc được sắp xếp theo thứ tự của mỗi hàng (hoặc chỉ một số cột) với chỉ mục tương ứng.
Để giải thích, tôi nói: điều này sẽ hữu ích để làm cho việc chọn các phạm vi của các hàng, song song với nhau, bởi các chỉ mục của chúng, nhanh hơn. Ví dụ: nếu tôi muốn select * where id >1000 and id<2000
(có thể có lỗi trong cú pháp MySQL, tôi không biết rõ về nó), thì cột id có thể được đọc nhanh từ đĩa vì có lẽ các ô của nó từ 1000 đến 2000 nằm cùng nhau trên đĩa vật lý . Nhưng nội dung cột khác tương ứng với id 1000 đến 2000 có thể được ghi trên các vị trí khác nhau trên đĩa vật lý. Nếu chúng cũng được sắp xếp, chúng sẽ được đọc nhanh hơn. Tôi nghĩ, có lẽ MySQL tự động sắp xếp các cột đó trên đĩa vật lý, để thực hiện các hoạt động đó.
Chúng có được sắp xếp trong các loại cơ sở dữ liệu khác (PostgreSQL, v.v.) không?
27 tháng 12: Tôi thấy từ 2 câu trả lời, trong trường hợp khi có chỉ mục / khóa chính được phân cụm, các hàng đơn giản không được sắp xếp trên đĩa vật lý (như tôi nghĩ nó có thể / có thể) và thậm chí chỉ mục được nhóm không được sắp xếp, nếu đó là b-cây, tôi đã đọc về b-cây và thấy rằng các nút của nó, theo tôi hiểu, ở lại các vị trí ngẫu nhiên trên đĩa.