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

Защо промяната от utf8 на utf8mb4 забави моята база данни?

utf наистина е utfmb3 и може да използва максимум 3 байта на знак, докато utfmb4 може да използва 4 байта на знак. За колоните VARCHAR това обикновено няма голяма разлика, тъй като MySQL ще съхранява само толкова байтове, колкото е необходимо (освен ако не сте създали своите MyISAM таблици с ROW_FORMAT=FIXED).

Въпреки това, по време на изпълнение на заявка, MySQL може да създаде временни таблици в механизма за съхранение MEMORY, който не поддържа редове с променлива дължина. Тези временни таблици имат максимален размер и ако този размер е надвишен, временните таблици ще бъдат преобразувани в таблици в MyISAM/InnoDB (в зависимост от вашата версия на MySQL). Променливата на състоянието Created_tmp_disk_tables ще се увеличава всеки път, когато това се случи. Ако е така, опитайте да видите дали това помага да увеличите стойността на max_heap_table_size и tmp_table_size .

Като алтернатива, надстройте до MySQL 8.0, където за вътрешни временни таблици се използва нов механизъм за съхранение, който поддържа редове с променлива дължина.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql изберете актуализация

  2. PHP MySQLi multi_query подготвен оператор

  3. MySQL pid приключи (не може да стартира mysql)

  4. Как да свържа Django към MySQL база данни през SSL връзка?

  5. Работа със специални символи на пълен текст на MySQL