Der beste Weg, dies zu tun, hängt wirklich von der Qualität und Art Ihrer Daten und Abfragen ab. Für den Anfang sind 180 MB Daten in einer einzigen Tabelle für Produkte kein Problem, egal wie Sie es betrachten. Und 30.000 Anfragen pro Tag sind noch weniger ein Problem. Mit einer ordnungsgemäß konfigurierten Datenbank kann jeder alte Desktop diese Last verarbeiten.
Andere haben bereits auf Ihre beiden Hauptoptionen hingewiesen, MySQL oder eine noSQL-Datenbank.
Wenn Sie eine bestimmte Anzahl von Attributen haben, die für jedes einzelne Produkt vorhanden sind (wie Hersteller, Preis, Lagernummer usw.), ist es am besten, Spalten für diese Attribute zu haben und Ihre Schlüssel / Wert-Paare in ein flaches Tabellenformat zu konvertieren. mit einer Produkt-ID als Primärschlüssel für diese Tabelle. Dies funktioniert auch dann sehr gut, wenn einige Spalten nur von der Hälfte der Zeilen verwendet werden, da Sie für die meisten Produkte nur eine Abfrage ausführen müssen, um alle ihre Attribute abzurufen Dies sind Daten über Produkte. Ich würde vermuten, dass es sehr wahrscheinlich ist, dass dies die Struktur Ihrer Daten ist.
Wenn die Attribute in Bezug auf Präsenz und Datentyp stark variieren, ist es möglicherweise besser, eine noSQL-Datenbank zu verwenden, die dieses Szenario effizienter handhabt als herkömmliche SQL-Datenbanken.
In Bezug auf die Leistung: Ich habe zuvor für ein E-Commerce-Unternehmen gearbeitet, bei dem die Website lange Zeit mit Daten von einem MySQL-Server versorgt wurde. Dieser Server hatte 2 GB RAM, die Datenbank war insgesamt ca. Mit einer Größe von 5 GB und einer Spitzenlast behandelte der Server mehrere tausend Anfragen pro Sekunde. Ja, wir hatten viele Abfrageoptimierungen durchgeführt, aber dies ist definitiv machbar.