Cách tốt nhất để làm điều này thực sự phụ thuộc vào chất lượng và bản chất của dữ liệu và truy vấn của bạn. Đối với người mới bắt đầu, 180 MB dữ liệu trong một bảng cho các sản phẩm không phải là vấn đề, bất kể bạn nhìn nó như thế nào. Và 30k truy vấn mỗi ngày thậm chí còn ít vấn đề hơn. Với một cơ sở dữ liệu được cấu hình đúng, bất kỳ máy tính để bàn cũ nào cũng có thể xử lý tải này.
Những người khác đã chỉ ra hai tùy chọn chính của bạn, MySQL hoặc cơ sở dữ liệu noQuery.
Nếu bạn có một số thuộc tính nhất định tồn tại cho mỗi sản phẩm (như nhà sản xuất, giá, số kho, v.v. thì tùy chọn tốt nhất của bạn là có các cột cho các thuộc tính này và chuyển đổi các cặp khóa / giá trị của bạn thành định dạng bảng phẳng, với ID sản phẩm là khóa chính cho bảng đó. Điều này sẽ hoạt động rất tốt ngay cả khi một số cột chỉ được sử dụng bởi một nửa số hàng, vì đối với hầu hết các sản phẩm, bạn sẽ chỉ cần chạy 1 truy vấn để truy xuất tất cả các thuộc tính của chúng. Đây là dữ liệu về sản phẩm, tôi đoán rằng có khả năng đây là cấu trúc dữ liệu của bạn.
Nếu các thuộc tính khác nhau về sự hiện diện và loại dữ liệu, thì bạn có thể sử dụng cơ sở dữ liệu noQuery tốt hơn, xử lý tình huống này hiệu quả hơn so với cơ sở dữ liệu SQL truyền thống.
Về hiệu suất: Trước đây tôi đã từng làm việc cho một công ty thương mại điện tử, trong một thời gian dài trang web được cung cấp dữ liệu từ máy chủ MySQL. Máy chủ này có 2GB RAM, tổng số cơ sở dữ liệu là xấp xỉ. Kích thước 5GB và tải dưới cùng, máy chủ xử lý vài nghìn truy vấn mỗi giây. Vâng, chúng tôi đã thực hiện rất nhiều tối ưu hóa truy vấn, nhưng điều này chắc chắn là có thể thực hiện được.