sql >> Database >  >> Database Tools >> phpMyAdmin

Waarom is tabel CHARSET ingesteld op utf8mb4 en COLLATION op utf8mb4_unicode_520_ci

In het verleden was er alleen utf8; in de toekomst, utf8mb4 zal de standaard tekenset zijn. nu utf8mb4 is de standaard tekenset.

In het verleden, _general_ci was de standaardsortering; dan _unicode_ci (Unicode 4.0) was beter, dan _unicode_520_ci (Unicode 5.20). In de toekomst (MySQL 8.0) is de standaard _0900_ci_ai (Unicode 9.0).

Ondertussen zit de weg vol kuilen die zijn ontstaan ​​door fouten uit het verleden van MySQL. En WP-ontwerpers rijden in een grote tank die de kuilen niet opmerkt.

MySQL 5.6 was een grote kuil die menig WP-gebruiker opslokte vanwege een limiet van 767 op indexen samen met WP-indexen op de te lange VARCHAR(255) en de mogelijkheid om utf8mb4 . te gebruiken . Je bent er ver voorbij door 5.7.17. (Je toekomstige overstap naar 8.0 zal minder hobbelig zijn.)

Dat wil zeggen, nieuw aangemaakte databases/tabellen/kolommen op 5.7.7+ zouden het 767-probleem niet moeten ervaren, maar dingen die zijn gemigreerd van oudere versies (5.5.3+) kunnen problemen hebben, vooral als iets ervoor zorgt dat u overschakelt naar utf8mb4.

Wat moeten we doen? Ik zal waarschijnlijk geen ruimte meer hebben om alle opties te spellen. Geef dus de geschiedenis van de gegevens, het upgradepad (indien aanwezig), de huidige instellingen, de ROW_FORMAT van de tabellen, de CHARACTER SET en COLLATION van de kolommen, de uitvoer van SHOW VARIABLES LIKE 'char%';

Waar moet je zijn? Voor 5.7.7+, utf8mb4 en utf8mb4_unicode_520_ci waar praktisch. Die tekenset geeft je Emoji en al het Chinees (utf8 niet). Die sortering is de best beschikbare, hoewel je misschien moeilijk kunt zien waar het ertoe doet.

Opmerking:het eerste deel van de sorteernaam is de enige tekenset waarmee het werkt. Dat is utf8_unicode_ci werkt niet met utf8mb4 .




  1. Hoe verwijder ik serververmeldingen in het Connect to Server-scherm van SQL Server Management Studio?

  2. mysql join 2 tabellen - toon alle rijen van één tabel

  3. Het exporteren van een database in phpmyadmin mislukt (localhost)

  4. waarom is de mysql-database gedeactiveerd op de xampp-status maar groen op de applocatie van het xampp-configuratiescherm?