Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có lý do gì để lo lắng về thứ tự cột trong bảng?

Thứ tự cột có tác động lớn đến hiệu suất trên một số cơ sở dữ liệu mà tôi đã điều chỉnh, bao gồm cả Sql Server, Oracle và MySQL. Bài đăng này có quy tắc chung :

  • Các cột khóa chính trước tiên
  • Các cột khóa ngoại tiếp theo.
  • Các cột được tìm kiếm thường xuyên tiếp theo
  • Các cột được cập nhật thường xuyên sau đó
  • Cuối cùng là các cột có thể làm trống.
  • Các cột có thể không sử dụng ít nhất sau các cột có thể không sử dụng thường xuyên hơn

Một ví dụ cho sự khác biệt về hiệu suất là tra cứu Chỉ mục. Công cụ cơ sở dữ liệu tìm một hàng dựa trên một số điều kiện trong chỉ mục và lấy lại địa chỉ hàng. Bây giờ, giả sử bạn đang tìm kiếm SomeValue và nó nằm trong bảng này:

 SomeId int,
 SomeString varchar(100),
 SomeValue int

Công cụ phải đoán nơi SomeValue bắt đầu, bởi vì SomeString có độ dài không xác định. Tuy nhiên, nếu bạn thay đổi thứ tự thành:

 SomeId int,
 SomeValue int,
 SomeString varchar(100)

Bây giờ công cụ biết rằng SomeValue có thể được tìm thấy 4 byte sau khi bắt đầu hàng. Vì vậy, thứ tự cột có thể có tác động đáng kể đến hiệu suất.

CHỈNH SỬA:Sql Server 2005 lưu trữ các trường có độ dài cố định ở đầu hàng. Và mỗi hàng có một tham chiếu đến phần đầu của một varchar. Điều này hoàn toàn phủ nhận hiệu ứng mà tôi đã liệt kê ở trên. Vì vậy, đối với các cơ sở dữ liệu gần đây, thứ tự cột không còn có bất kỳ tác động nào nữa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Máy chủ MySQL độc lập

  2. Cách tạo cơ sở dữ liệu MySQL trong cPanel

  3. Các phương pháp gộp kết nối MySql của JDBC để tránh nhóm kết nối cạn kiệt

  4. Xuất và nhập tất cả cơ sở dữ liệu MySQL cùng một lúc

  5. 4 cách để liệt kê tất cả các chế độ xem trong MySQL