Если вы думаете о миллионах таблиц, я не могу представить, что вы на самом деле разрабатываете миллионы логически различных таблиц. Скорее я сильно подозреваю, что вы создаете таблицы динамически на основе данных. То есть вместо того, чтобы создавать поле для, скажем, идентификатора пользователя и хранить одну или несколько записей для каждого пользователя, вы рассматриваете возможность создания новой таблицы TABLE для каждого идентификатора пользователя. И тогда у вас будут тысячи и тысячи таблиц, в которых все будут одинаковые поля. Если это то, что вы делаете: не надо. Стоп.
Таблица должна представлять логический ТИП вещи, для которой вы хотите хранить данные. Вы можете составить таблицу городов, а затем иметь одну запись для каждого города. Одно из полей в таблице городов может указывать, в какой стране находится этот город. НЕ создавайте отдельную таблицу для каждой страны, в которой содержатся все города для каждой страны. Франция и Германия оба являются примерами «страны» и должны идти в одной таблице. Это не разные вещи, вещи Франции и Германии.
Вот ключевой вопрос, который нужно задать: какие данные я хочу хранить в каждой записи? Если у вас есть 1000 таблиц, которые имеют одинаковые столбцы, то почти наверняка это будет одна таблица с полем, имеющим 1000 возможных значений. Если вы действительно серьезно храните совершенно другую информацию о Франции, чем о Германии, например, для Франции вы хотите получить список провинций со столицей и населением, а для Германии вам нужен список компаний с промышленностью и председателя совета директоров тогда ладно, это должны быть две разные таблицы. Но в этот момент, скорее всего, разница не во Франции и Германии, а в чем-то другом.