sql >> Databasteknik >  >> RDS >> Mysql

Skillnad mellan databas-, tabell-, kolumnsamling

MySQL:s teckenuppsättningar och sammanställningar kan tolkas som en top-down lista med prioriterade objekt. Det översta är minst prioritet och det lägsta har mest prioritet.

Prioritetsordning där översta är minsta prioritet:

  • Serversortering
  • Anslutningsspecifik sortering
  • Databassamling
  • Tabellsortering
  • Kolumnsamling
  • Frågesortering (med CAST). eller CONVERT )

serversorteringen ställs in av servern, som ställs antingen inuti my.cnf eller när servern byggdes från källkod. Som standard är detta vanligtvis latin1 eller utf8 , beroende på din plattform.

Den anslutningsspecifika sorteringen ställs in av klienten med en fråga som SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'; . De flesta klienter ställer inte in en anslutningsspecifik sortering, så servern kommer att använda sin egen standard som förklaras ovan.

databassorteringen ställs in när databasen skapas, eller manuellt genom att uppdatera den senare. Om du inte anger en, kommer den att använda nästa sortering på högre nivå, som antingen skulle vara den anslutningsspecifika eller serversorteringen.

tabellsorteringen är samma som databassorteringen, förutom om den lämnas tom, kommer den att använda databasen som standard, sedan anslutningsspecifik och sedan serverns sortering.

kolumnsamlingen använder tabellens sortering som standard, och om det inte finns någon sorteringsuppsättning kommer den sedan att följa upp kedjan för att hitta en sortering att använda, och stannar vid servern om alla andra inte var inställda.

frågesorteringen anges i frågan med CAST eller CONVERT , men annars kommer att använda nästa tillgängliga sortering i kedjan. Det går inte att ställa in detta om du inte använder en funktion.

Se även manualsidan Stöd för teckenuppsättningar .



  1. Optimering vid sammanslagning från Oracle datalänk

  2. Utförande av rekursiva lagrade procedurer i MYSQL för att få hierarkisk data

  3. Att skapa en utlösare för infogning av underordnade tabeller returnerar ett förvirrande fel

  4. Distribuera och hantera MySQL NDB Cluster med ClusterControl