Я веду университетскую базу данных с 5 таблицами. В каждой таблице на этот год около 2 миллионов строк. Поэтому я планирую разделить таблицы по годам. Я использую Spring Boot с JPA для своего приложения, а база данных - это MySQL.
Каждый год мое приложение должно создавать новую среду выполнения таблиц. Во время выборки Entities можно сопоставить обе таблицы.
Какие все подходы реализовать?
Почему бы просто не добавить индекс в столбец года? Если эти данные не изменятся за предыдущие годы, вы можете разделить их в автономном режиме, потому что выполнение этого во время выполнения может заблокировать ресурсы.
все таблицы за текущий год. в будущем мое приложение должно создавать те же таблицы с добавлением года
Не создавайте таблицы в год. Вы должны прочитать о разбиении на разделы: dev.mysql.com/doc/refman/8.0/en/partitioning.html




зависит от вашего варианта использования, если вы много пишете и блокируете всю таблицу для некоторых частых операций, поможет сегментирование данных в таблице mysql. если ваш шаблон требует больших вычислений и вы хотите распределить вычислительную нагрузку на несколько физических компьютеров, то сегментирование данных на разных хостах поможет