A melhor maneira de fazer isso realmente depende da qualidade e natureza dos seus dados e consultas. Para iniciantes, 180 MB de dados em uma única tabela de produtos não são um problema, seja qual for a forma como você os analisa. E 30 mil consultas por dia são ainda menos problemáticas. Com um banco de dados configurado corretamente, qualquer área de trabalho antiga pode lidar com essa carga.
Outros já apontaram suas duas principais opções, MySQL ou um banco de dados noSQL.
Se você possui um certo número de atributos para cada produto (como fabricante, preço, número do depósito etc.), a melhor opção é ter colunas para esses atributos e converter seus pares de chave / valor em um formato de tabela simples, com um ID do produto como chave primária para essa tabela, o que funcionará muito bem, mesmo que algumas colunas sejam usadas apenas pela metade das linhas, pois para a maioria dos produtos, você precisará executar apenas 1 consulta para recuperar todos os seus atributos. são dados sobre produtos, acho que é bem provável que essa seja a estrutura dos seus dados.
Se os atributos variarem amplamente na presença e no tipo de dados, é melhor usar um banco de dados noSQL, que lida com esse cenário com mais eficiência do que os bancos de dados SQL tradicionais.
Quanto ao desempenho: trabalhei anteriormente para uma empresa de comércio eletrônico, onde por muito tempo o site foi fornecido com dados de um servidor MySQL. Este servidor tinha 2 GB de RAM, o banco de dados no total foi de aprox. Com 5 GB de tamanho e sob carga máxima, o servidor processou vários milhares de consultas por segundo. Sim, fizemos muitas otimizações de consulta, mas isso é definitivamente possível.