Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zmiana z varchar na średni tekst powoduje pogorszenie wydajności

Oba typy danych są obsługiwane praktycznie identycznie. Istnieje wiele innych możliwych przyczyn spowolnienia. (Ale nikt, o którym wiem, nie powiedziałby MEDIUMTEXT jest gorszy niż VARHAR .)

Więc... Zobaczmy, czy możemy przyspieszyć działanie strony internetowej...

Umieść microtime(true) wokół wywołań mysql -- aby upewnić się, że jest to MySQL, a nie PHP. „0,019 s” ma sens; „1,5 - 2 sekundy” brzmi jak coś się dzieje w PHP.

Używaj InnoDB, nie MójISAM. (Pomimo Twoich twierdzeń, że jest inaczej).

Dostrój poprawnie; zobaczmy SHOW VARIABLES LIKE '%buffer%'; Ile masz pamięci RAM? (Zamiana jest straszna dla wydajności.)

Ile wierszy zwracasz? Posiadanie więcej niż kilkudziesięciu na stronie internetowej nie jest praktyczne, więc dodaj ORDER BY...LIMIT... .

Jeśli limit interfejsu użytkownika wynosi 1000 znaków, użyj TEXT lub VARCHAR(1000) , a nie MEDIUMTEXT . Jeśli próbujesz podnieść do 64K bajtów (potencjalnie 4K utf8mb4 znaki ), a następnie użyj TEXT .

Potrzebujesz tego (z kolumnami w dowolnej kolejności):

INDEX(part_id, language)

Jeśli w tabeli MyISAM wystąpiło wiele „odpływów” (usunięć i/lub aktualizacji, po których następuje więcej wstawek), dane mogą być pofragmentowane, a zatem powolne. Może się to zdarzyć dla obu VARCHAR i TEXT . Nie dzieje się tak w przypadku 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. Zapytania Sql wiążące zmienne a ich określanie

  2. Problem MySQL z aktualizacją pola DATETIME z formatu ISO 8601

  3. MySQL LOAD_FILE zwraca NULL

  4. Jak przygotować zestawienie do zapytania aktualizacyjnego?

  5. Instrukcja przygotowania MySql - czy można sparametryzować nazwę kolumny lub nazwę funkcji?