Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao việc thay đổi từ utf8 thành utf8mb4 lại làm chậm cơ sở dữ liệu của tôi?

utf thực sự là utfmb3 và có thể sử dụng tối đa 3 byte cho mỗi ký tự trong khi utfmb4 có thể sử dụng 4 byte cho mỗi ký tự. Đối với các cột VARCHAR, điều này thường không có nhiều khác biệt vì MySQL sẽ chỉ lưu trữ bao nhiêu byte nếu cần (trừ khi bạn đã tạo bảng MyISAM của mình bằng ROW_FORMAT =FIXED).

Tuy nhiên, trong quá trình thực thi truy vấn, MySQL có thể tạo các bảng tạm thời trong công cụ lưu trữ MEMORY không hỗ trợ các hàng có độ dài thay đổi. Các bảng tạm thời này có kích thước tối đa và nếu kích thước đó vượt quá, các bảng tạm thời sẽ được chuyển đổi thành các bảng trong MyISAM / InnoDB (tùy thuộc vào phiên bản MySQL của bạn). Biến trạng thái Created_tmp_disk_tables sẽ được tăng lên mỗi khi điều này xảy ra. Nếu vậy, hãy thử xem nó có giúp tăng giá trị của max_heap_table_size không tmp_table_size .

Ngoài ra, hãy nâng cấp lên MySQL 8.0 trong đó công cụ lưu trữ mới hỗ trợ các hàng có độ dài thay đổi được sử dụng cho các bảng tạm thời nội bộ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CakePHP:Tạo hàng HABTM mới thay vì cập nhật hàng khác

  2. Sử dụng cả Mongodb và Mysql trong một dự án

  3. Các câu lệnh chuẩn bị của MySQLi hiển thị lỗi do MySQLnd chưa được cài đặt

  4. Số lượng SQL từ bảng đã tham gia

  5. Làm cách nào để chuyển mật khẩu từ tập lệnh bash sang aptitude để cài đặt mysql?