sql >> Databasteknik >  >> RDS >> Mysql

MySQL bästa sättet att lagra långa strängar

Generellt sett är detta inte en fråga som har ett "rätt" svar. Det finns ingen "oändlig längd" textlagringstyp i MySQL. Du kan använda LONGTEXT , men det har fortfarande en (absurt hög) övre gräns. Men om du gör det, sparkar du din DBMS i tänderna för att du måste ta itu med den där absurda kolumnen för din text på 50 tecken. För att inte tala om det faktum att du knappt gör något med det.

Så, mest futureproofness(TM) erbjuds förmodligen av LONGTEXT . Men det är också en mycket dålig metod för att lösa problemet. Ärligt talat skulle jag gå igenom ansökningskraven igen. Att lagra strängar som inte har någon "domän" (som i, är väldefinierade i sin applikation) och godtycklig längd är inte en av styrkorna med RDBMS.

Om jag skulle vilja lösa detta på "applikationsdesignnivån" skulle jag använda NoSQL nyckel-värdelager för detta (och jag är så anti-NoSQL-hype som de blir, så du vet att det är seriöst), till och med även om jag inser att det är en ganska dyr förändring för en så liten förändring. Men om detta är en indikation på vad din DBMS så småningom kommer att hålla, kan det vara mer klokt att byta nu för att undvika samma problem hundra gånger i framtiden. Datadomänen är mycket viktig i RDBMS, medan den uttryckligen åsidosätts i icke-relationella lösningar, vilket verkar vara det du försöker lösa här.

Har du fastnat för MySQL? Öka det bara till VARCHAR(1000) . Om du inte har några krav på din data är det ändå irrelevant vad du gör.



  1. Syntetisk datagenerering

  2. IDENT_CURRENT vs @@IDENTITY vs SCOPE_IDENTITY i SQL Server:Vad är skillnaden?

  3. Postgres kopierar Heroku Production DB till lokal utveckling DB

  4. Hur man lägger till ELLER släpper kolumn från CDC-aktiverad tabell utan att förlora data i SQL Server Database - SQL Server Tutorial