Двата типа данни се обработват практически идентично. Има много други възможни причини за мудността. (Но никой, който познавам, не би казал MEDIUMTEXT е по-лошо от VARHAR .)
Така че... Да видим дали можем да ускорим уеб страницата...
Поставете microtime(true) около извикванията на mysql - за да се уверите, че това е MySQL, а не PHP. "0,019 секунди" има смисъл; "1,5 - 2 секунди" звучи сякаш нещо се случва в PHP.
Използвайте InnoDB, не MyISAM. (Въпреки твърденията ви за обратното.)
Настройте правилно; нека видим SHOW VARIABLES LIKE '%buffer%'; Колко RAM имате? (Смяната е ужасна за производителност.)
Колко реда връщате? Не е практично да имате повече от няколко десетки на уеб страница, така че добавете ORDER BY...LIMIT... .
Ако ограничението на потребителския интерфейс е 1000 знака, използвайте TEXT или VARCHAR(1000) , а не MEDIUMTEXT . Ако се опитвате да увеличите до 64K байта (потенциално 4K utf8mb4 символи ), след което използвайте TEXT .
Имате нужда от това (с колоните в който и да е ред):
INDEX(part_id, language)
Ако е имало много "изместване" (изтривания и/или актуализации, последвани от повече вмъквания) в таблицата MyISAM, данните могат да бъдат фрагментирани, следователно бавни. Това може да се случи както за VARCHAR и TEXT . Това не се случва с InnoDB.