De twee datatypes worden vrijwel identiek behandeld. Er zijn veel andere mogelijke redenen voor traagheid. (Maar niemand die ik ken die zou zeggen MEDIUMTEXT
is erger dan VARHAR
.)
Dus... Eens kijken of we de webpagina kunnen versnellen...
Zet microtime(true)
rond de mysql-aanroepen -- om er zeker van te zijn dat het MySQL is, niet PHP. "0.019secs" is logisch; "1,5 - 2 seconden" klinkt alsof er iets aan de hand is in PHP.
Gebruik InnoDB, niet MijnISAM. (Ondanks uw beweringen van het tegendeel.)
Stem correct af; laten we eens kijken SHOW VARIABLES LIKE '%buffer%';
Hoeveel RAM heb je? (Swappen is slecht voor de prestaties.)
Hoeveel rijen keer je terug? Het is niet praktisch om meer dan enkele tientallen op een webpagina te hebben, dus voeg ORDER BY...LIMIT...
toe .
Als de UI-limiet 1000 tekens is, gebruik dan TEXT
of VARCHAR(1000)
, niet MEDIUMTEXT
. Als u tot 64K bytes probeert te verhogen (mogelijk 4K utf8mb4 tekens ), gebruik dan TEXT
.
Dit heb je wel nodig (met de kolommen in willekeurige volgorde):
INDEX(part_id, language)
Als er veel "churn" (verwijderingen en/of updates gevolgd door meer inserts) in de MyISAM-tabel is geweest, kunnen de gegevens gefragmenteerd en dus traag zijn. Dit kan gebeuren voor zowel VARCHAR
en TEXT
. Dit gebeurt niet met InnoDB.