Объем данных, которые вы получаете каждый день, довольно велик (~ 5 ГБ), но количество вставляемых строк на самом деле довольно мало. Следовательно, вам необходимо спроектировать физическую модель, чтобы упростить администрирование хранилища базы данных и повысить эффективность запросов.
Наличие отдельной базы данных для каждого города имеет смысл, только если вы собираетесь иметь сервер для каждой базы данных. Но вам не нужно балансировать нагрузку, так как вам нужно обрабатывать только восемь вставок каждые десять минут. С другой стороны, эта архитектура превратит каждый запрос, который сравнивает один город с другим, в распределенный запрос.
Наличие одной таблицы на город в одной и той же базе данных может дать вам некоторые преимущества в производительности, если большинство ваших запросов ограничены данными из города, а не сравнивают города. Но я бы не хотел вкладывать в это много денег. Даже если это сработает, это может усложнить другие виды запросов.
Учитывая, что данные одинаковы для всех городов, я бы предпочел одну таблицу с дифференцирующим столбцом (TOWN_ID). Особенно, если бы у меня были деньги, чтобы перейти на лицензию Oracle с опцией Partitioning.