Cara terbaik untuk melakukan ini sangat tergantung pada kualitas dan sifat data dan pertanyaan Anda. Sebagai permulaan, 180MB data dalam satu tabel untuk produk bukanlah masalah, bagaimanapun cara Anda melihatnya. Dan 30 ribu pertanyaan per hari bahkan lebih sedikit masalah. Dengan database yang dikonfigurasi dengan benar, desktop lama apa pun dapat menangani pemuatan ini.
Orang lain telah menunjukkan dua opsi utama Anda, MySQL atau database noSQL.
Jika Anda memiliki sejumlah atribut yang ada untuk setiap produk tunggal (seperti pabrikan, harga, nomor gudang, dll. Maka pilihan terbaik Anda adalah memiliki kolom untuk atribut ini dan mengonversi pasangan kunci / nilai Anda ke dalam format tabel datar, dengan ID produk sebagai kunci utama untuk tabel itu. Ini akan bekerja dengan sangat baik bahkan jika beberapa kolom hanya digunakan oleh setengah dari baris, karena untuk sebagian besar produk Anda hanya perlu menjalankan 1 kueri untuk mengambil semua atributnya. ini adalah data tentang produk, saya rasa kemungkinan besar ini adalah struktur data Anda.
Jika atribut sangat bervariasi dalam keberadaan dan tipe data, maka Anda mungkin lebih baik menggunakan database noSQL, yang menangani skenario ini lebih efisien daripada database SQL tradisional.
Mengenai kinerja: Saya sebelumnya pernah bekerja untuk perusahaan e-commerce, di mana untuk waktu yang lama situs web diberikan dengan data dari server MySQL. Server ini memiliki 2GB RAM, database secara keseluruhan sekitar. Berukuran 5GB dan di bawah beban teratas server menangani beberapa ribu permintaan per detik. Ya, kami telah melakukan banyak optimasi kueri, tapi ini pasti bisa dilakukan.