sql >> Database >  >> RDS >> Mysql

Overschakelen van varchar naar mediumtext leidt tot prestatievermindering

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.




  1. MySQL Sommige buitenlandse sleutels verwijderen

  2. Hoe de W10 Universal App te verbinden met de MySQL-database

  3. Meerdere een-op-veel-relaties tussen tabellen opgeven in de sluimerstand

  4. Een Presto-database verbinden met MySQL