Нет, это будет намного медленнее, потому что, чтобы найти элемент в ArrayList, вы должны последовательно сканировать ArrayList, пока ваш элемент не будет найден.
Это может быть быстрее, для нескольких сотен записей, потому что у вас нет накладных расходов на соединение, но с двумя миллионами записей MySQL победит при условии, что вы создадите правильные индексы.Извлекайте только те строки, которые вам действительно нужны каждый раз.
Почему вы думаете сделать это?Вы испытываете медленные запросы?
Чтобы выяснить, в вашем my.cnf активируйте журнал медленных запросов, раскомментировав (или добавив) следующие строки.
# Here you can see queries with especially long duration
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1
Затем посмотрите, какие запросы занимают много времени, изапустите их с EXPLAIN впереди, добавьте индекс, где команда объяснения скажет вам, что индексы не используются, или просто опубликуйте новый вопрос с помощью оператора CREATE TABLE и вашего примера запроса для оптимизации.