La mejor manera de hacerlo realmente depende de la calidad y la naturaleza de sus datos y consultas. Para empezar, 180 MB de datos en una sola tabla para productos no es un problema, de cualquier forma que lo mire. Y 30 mil consultas por día son aún menos problemáticas. Con una base de datos configurada correctamente, cualquier escritorio antiguo puede manejar esta carga.
Otros ya han señalado sus dos opciones principales, MySQL o una base de datos noSQL.
Si tiene un cierto número de atributos que existen para cada producto individual (como fabricante, precio, número de almacén, etc.), su mejor opción es tener columnas para estos atributos y convertir sus pares clave / valor en un formato de tabla plana, con un ID de producto como clave principal para esa tabla. Esto funcionará muy bien incluso si algunas columnas solo son utilizadas por la mitad de las filas, ya que para la mayoría de los productos solo necesitará ejecutar 1 consulta para recuperar todos sus atributos. se trata de datos sobre productos, supongo que es muy probable que esta sea la estructura de sus datos.
Si los atributos varían ampliamente en presencia y tipo de datos, entonces podría ser mejor usar una base de datos noSQL, que maneja este escenario de manera más eficiente que las bases de datos SQL tradicionales.
En cuanto al rendimiento: anteriormente trabajé para una empresa de comercio electrónico, donde durante mucho tiempo el sitio web recibió datos de un servidor MySQL. Este servidor tenía 2 GB de RAM, la base de datos en total era de aprox. De 5 GB de tamaño y bajo carga superior, el servidor manejó varios miles de consultas por segundo. Sí, habíamos optimizado muchas consultas, pero definitivamente es factible.