Giả sử rằng tôi có một bảng lớn với ba cột: "user_name", "user_property", "value_of_property". Lat cũng giả định rằng tôi có rất nhiều người dùng (giả sử 100 000) và rất nhiều thuộc tính (giả sử 10 000). Sau đó, bảng sẽ là rất lớn (1 tỷ hàng).Tôi có thể tối ưu hóa cơ sở dữ liệu của mình bằng cách tách một bảng lớn thành nhiều bảng nhỏ không?
Khi tôi trích xuất thông tin từ bảng tôi luôn luôn cần thông tin về một người dùng cụ thể. Vì vậy, tôi sử dụng, ví dụ: where user_name='Albert Gates'
. Vì vậy, mỗi khi máy chủ mysql cần phân tích 1 tỷ dòng để tìm những người trong số họ có chứa "Albert Gates" như user_name.
có nó không được khôn ngoan để phân chia các bảng lớn thành nhiều những cái nhỏ tương ứng với người dùng cố định?
những gì bạn mô tả được gọi là phân vùng. Trong cơ sở dữ liệu bạn thiết kế cấu trúc rtable xung quanh dữ liệu của bạn. Bạn thiết lập phần cứng để quản lý loại sự cố này. Tôi tin rằng parttioning (đó là máy chủ sql lingo cho những gì bạn đang nói về) là một tính năng mà không phải là trong mysql - hoặc nó đã không được 7 năm trước khi tôi chuyển sang máy chủ sql - mà tôi biết không hỗ trợ nó. –
@ John Nicholas: http://dev.mysql.com/doc/refman/5.1/en/partitioning.html –
coool tyvm;) mysql có phân vùng afterall –