Tôi đang nhập dữ liệu vào cơ sở dữ liệu trong tương lai sẽ có một bảng MyISAM tĩnh (sẽ chỉ đọc từ). Tôi đã chọn MyISAM bởi vì theo tôi hiểu nó nhanh hơn cho các yêu cầu của tôi (tôi hoàn toàn không có kinh nghiệm với MySQL/SQL).Chuẩn hóa cơ sở dữ liệu hay không? Chỉ đọc bảng MyISAM, hiệu suất là ưu tiên chính (MySQL)
Bảng đó sẽ có các cột khác nhau như ID, Tên, Giới tính, Điện thoại, Trạng thái ... và Quốc gia, Thành phố, cột Đường. Bây giờ câu hỏi là, tôi có nên tạo các bảng (ví dụ: Quốc gia: Country_ID, Country_Name) cho 3 cột cuối cùng và tham chiếu chúng trong bảng chính theo ID (bình thường hóa ... [?]) Hoặc chỉ lưu chúng dưới dạng VARCHAR trong bảng chính (có bản sao, rõ ràng)?
Mối quan tâm chính của tôi là tốc độ - vì bảng sẽ không được ghi vào, tính toàn vẹn của dữ liệu không phải là ưu tiên. Các hành động duy nhất sẽ chọn một hàng cụ thể hoặc tìm kiếm các hàng có nhiều tiêu chí nhất định.
Tìm kiếm theo cột Quốc gia, Thành phố và/hoặc Đường phố (và có thể cả các cột khác trong cùng một tìm kiếm) sẽ nhanh hơn nếu tôi chỉ sử dụng VARCHAR?
EDIT: Bảng có khoảng 30 cột và khoảng 10m hàng.
Bạn có xem xét các cơ chế lưu trữ khác không? MySQL có thể khiến bạn mất chi phí mà bạn không cần phải trả vì khả năng bạn không sử dụng. Bạn có thể xác định vị trí một số lựa chọn thay thế ở đây: http://en.wikipedia.org/wiki/Nosql http://en.wikipedia.org/wiki/Embedded_database –