Mysql
 sql >> база данни >  >> RDS >> Mysql

Промяната от varchar на mediatext причинява влошаване на производителността

Двата типа данни се обработват практически идентично. Има много други възможни причини за мудността. (Но никой, който познавам, не би казал 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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи функцията REGEXP_SUBSTR() в MySQL

  2. Как да дефинирате колона, която може да автоматизира изписването с главни букви?

  3. SQL SERVER – Трик – Изпълняване на SSMS с различен акаунт в Windows

  4. Получавайте резултати, които попадат в радиусите на маркера от базата данни

  5. По-бързо ли е да се преобразува в varchar или varchar към int, когато се сравнява в MySQL?