Результат: всё работает медлено из-за сортировки и фильтров по не индексируемым полям.
Так индексируйте таблицы, 2кк записей — это не много для MySQL.
Как правильно сказал
Vampiro, нет абсолютно никакого смысла вываливать всё на клиент, пользователь не увидит и 5% этих данных, но производительность браузера это убьет насмерть.