✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

22 MySQL bästa praxis att följa som utvecklare under 2019

29

MySQL är det näst mest populära open-source relationsdatabashanteringssystemet i världen. Den används över hela världen på grund av dess konsekvent snabba prestanda, höga tillförlitlighet och användarvänlighet. Den här artikeln presenterar några av de bästa MySQL-metoderna.

Med dem kan du öva SQL och ställa in några SQL-övningar, lära dig om SQL limit och SQL-övning online, samt om de vanligaste SQL-övningsproblemen.

Det hjälper dig att förstå radnummer SQL, SQL top, MySQL limit offset och SQL onlinepraxis.

Om du letar efter ett trevligt och enkelt sätt att visa ett stort antal rader och kolumner för besökare på din WordPress-webbplats med färgglada, informativa och responsiva interaktiva tabeller och diagram kan du använda det med plugin-programmet wpDataTables, kontrollera prissättningen och alla funktioner den ger här.

1 Använd alltid rätt datatyp

En av de viktigaste MySQL bästa metoderna är att använda datatyper baserade på datas natur. Att använda irrelevanta datatyper kan ta mer utrymme eller leda till fel.

Till exempel: Att använda varchar (20) istället för DATETIME-datatypen för att lagra datum- och tidsvärden kommer att leda till fel i datum- och tidsrelaterade beräkningar. Det är också möjligt att ogiltiga data kommer att lagras.

2 Använd CHAR (1) över VARCHAR (1)

VARCHAR (1) tar extra byte för att lagra information, så om du stränger ett enda tecken, är det bättre att använda CHAR (1).

3 Använd CHAR-datatypen för att endast lagra data med fast längd

Till exempel: Om längden på data är mindre än 1000, kommer användning av char (1000) istället för varchar (1000) att förbruka mer utrymme.

4 Undvik att använda regionala datumformat

När du använder datatypen DATETIME eller DATE ska du alltid använda datumformatet ÅÅÅÅ-MM-DD eller ISO-datumformatet som passar din SQL Engine. Regionala format som DD-MM-ÅÅÅÅ eller MM-DD-ÅÅÅÅ kommer inte att lagras korrekt.

5 Index nyckelkolumner

Det är önskvärt att frågan returnerar resultatet snabbt, så se till att indexera kolumnerna som används i JOIN-satser.

Om du använder UPDATE-satsen som involverar mer än en tabell, se till att indexera alla kolumner som används för att sammanfoga tabellerna.

6 Använd inte funktioner över indexerade kolumner…

… för då tappar indexet sitt syfte.

Anta till exempel att du vill få data där de två första tecknen i kundkoden är AK. Skriva:

SELECT columns FROM table WHERE customer_code like 'AK%'

och skriv inte

SELECT columns FROM table WHERE left (customer_code,2)='AK’

Varför? Det första exemplet kommer att använda indexet, vilket kommer att resultera i en snabbare svarstid.

7 Använd SQL SELECT * endast om det behövs

Följ listan över MySQL bästa praxis, använd inte bara blint SELECT * i koden. Om tabellen har många kolumner kommer alla att returneras. Detta kommer att sakta ner svarstiden, särskilt om du skickar resultatet till en front-end-applikation.

Skriv i stället uttryckligen de kolumnnamn som faktiskt behövs.

Notera: kom ihåg att alla SELECT-satser kräver en WHERE-sats.

8 Använd endast ORDER BY-klausul om det behövs

Om du vill visa resultatet i front-end-applikationen, låt den BESTÄLLA resultatuppsättningen. Om du gör detta i SQL kan svarstiden bli långsammare i fleranvändarmiljön.

9 Välj en lämplig databasmotor

Om du utvecklar en applikation som läser data oftare än att skriva (t.ex. en sökmotor), välj MyISAM-lagringsmotor.

Att välja fel lagringsmotor kommer att påverka prestandan.

10 Använd EXISTS-klausulen där det behövs

För att kontrollera förekomsten av data, använd EXISTS-satsen som är snabbare i svarstid. Använd till exempel:

If EXISTS(SELECT * from Table WHERE col=’some value’)

Använd inte :

If (SELECT count(*) from Table WHERE col=’some value’)>0

11 FÖRKLARA dina SELECT-frågor

Om du använder nyckelordet EXPLAIN kan du få insikt om vad MySQL gör för att utföra din fråga. Detta kan hjälpa dig att upptäcka problem med din fråga eller tabellstrukturer (t.ex. flaskhalsar).

En EXPLAIN-fråga resulterar i att visa dig vilka index som används, hur tabellen skannas, sorteras, etc.

Allt du behöver göra är att lägga till nyckelordet EXPLAIN framför en SELECT-fråga (helst en komplex med joins). Dessutom, om du använder phpmyadmin för detta, kommer dina resultat att visas i en trevlig tabell.

12 Använd LIMIT 1 när du får en unik rad

Ibland vet du i förväg att du bara letar efter en rad när du frågar efter dina tabeller. Du kanske till exempel hämtar en unik post, eller så kanske du bara kontrollerar att det finns ett antal poster som uppfyller din WHERE-sats.

I sådana fall vill du använda MySQL limit-funktionen för att öka prestandan. Här är en annan av MySQL bästa praxis: lägg bara till LIMIT 1 i din fråga. På så sätt behöver inte databasmotorn gå igenom hela tabellen eller indexet. Den kommer att sluta skanna när den bara hittar en post av det du letar efter.

// do I have anyusersfrom Alabama?

// vad man INTE ska göra:
$r = mysql_query(”SELECT * FROM user WHERE state = ’Alabama’");
if (mysql_num_rows($r) > 0) {
// …
}

// mycket bättre:
$r = mysql_query(”SELECT 1 FROM user WHERE state = ’Alabama’ LIMIT 1");
if (mysql_num_rows($r) > 0) {
// …
}

13 Indexera och använd samma kolumntyper för kopplingar

Ett annat viktigt tips om MySQL bästa praxis – om din applikation har många JOIN-frågor, se till att kolumnerna du går med i är indexerade i båda tabellerna. Detta påverkar den interna optimeringen av join-operationen av MySQL.

Dessutom måste de sammanfogade kolumnerna vara av samma typ. Om du till exempel kopplar en DECIMAL-kolumn till en INT-kolumn från en annan tabell, kommer MySQL inte att kunna använda något av indexen. Även teckenkodningarna måste vara av samma typ för kolumner av strängtyp.

// looking for companies in my state $r = mysql_query("SELECT company_name FROM users LEFT JOIN companies ON (users.state = companies.state) WHERE users.id = $user_id");

// båda tillståndskolumnerna bör indexeras
// och de båda ska vara av samma typ och teckenkodning
// eller så kan MySQL göra genomsökningar av hela tabeller

14 Dölj MySQL från Internet

Erfarna databasadministratörer och säkerhetspersonal vet det – värd aldrig databasen under webbserverns rot.

För webbaktiverade applikationer bör MySQL döljas bakom en brandvägg. Kommunikation bör endast aktiveras mellan applikationsservrar och dina webbservrar.

Ett annat alternativ är att använda MySQL skip-nätverk. När det är aktiverat, lyssnar MySQL endast efter lokala socket-anslutningar och ignorerar alla TCP-portar.

15 Använd de minsta möjliga datatyperna

22 MySQL bästa praxis att följa som utvecklare under 2019

Låt mig berätta en historia. När jag gick på college var filosofin att "minnet är knappt". Det var de dagar med 256 MB hårddiskar. Nuförtiden verkar ingen bry sig ett dugg om minne eller hårddiskutrymme. Den nya filosofin är att "minnet är billigt". Det kan vara sant i dollartermer, men att läsa stora datatyper tar fortfarande längre tid än att läsa mindre. Stora datatyper kräver att fler skivsektorer kan läsas in i minnet.

Moralen är att ignorera frestelsen att omedelbart hoppa till den största datatypen när du designar dina tabeller. Tänk på att använda en int istället för en bigint.

Undvik också largechar (255) textfält när en varchar eller mindre char räcker.

Om du använder rätt datatyp kommer fler poster att få plats i minnet eller indexnyckelblocket. Detta leder till färre läsningar och snabbare prestanda.

16 Utnyttja query caching

Cachning av frågor är en av de mest effektiva metoderna för att förbättra prestandan. De flesta MySQL-servrar har det aktiverat som standard.

Frågecachen lagrar texten i en SELECT-sats tillsammans med motsvarande resultatuppsättning. Om servern senare får en identisk sats kommer den att hämta resultaten från frågecachen istället för att analysera och köra satsen igen. Frågecachen delas mellan sessioner, så en resultatuppsättning som genereras av en klient kan skickas som svar på samma fråga från en annan klient.

Men hur bra det än är har query caching sina begränsningar. Ta följande uttalande:

Problemet här är att frågor innehåller vissa icke-deterministiska funktioner, som NOW() och RAND(). MySQL kan inte beräkna sådana funktioner i förväg, så det slutar med att de inte cachelagras.

Lyckligtvis finns det en enkel lösning på det: du kan lagra funktionsresultaten i en variabel.

17 Redigera inte dumpfiler

Dumpfiler är mycket vilseledande och kan orsaka korruption. Varför? Om du någonsin har sett dumpfilerna skapade av mysqldump, kommer du att hålla med om att de ser ut som vanliga, ofarliga textfiler. Det är därför de flesta redigerar dem i en vanlig textredigerare, vilket gör att korruptioner uppstår.

Om du någonsin har provat att redigera dumpfiler lärde du dig snabbt att de är allt annat än en textfil. Så det enda garanterade sättet att undvika problem är att lämna dumpfilerna ifred.

18 Använd MyISAM-blockstorleksinställningen

22 MySQL bästa praxis att följa som utvecklare under 2019

Inställningen för blockstorlekar i MyISAM-tabellernas index är en av MySQL-metoderna. Den finns i .MYI-filerna i nyckelbufferten, såväl som på skivan. Inställningen ser ut så här: myisam_block_size.

Den har ett standardvärde på 1k. Det är ganska litet för att vara optimalt på ett modernt system. Större block används av de flesta filsystem. Och vi vet att skriva ett enda indexblock kräver en läsning och sedan en skrivning. Operativsystemet kommer aldrig att behöva skriva till den underliggande skivan så länge som blockstorleken är lika med eller större än filsystemets blockstorlek.

19 Slå på delay_key_write

Delay_key_write är avstängd som standard. Det finns en anledning till det. Om du råkade ut för en krasch mitt i projektet kan din databas bli korrupt.

Så varför skulle du vilja slå på den? Anledningen är enkel. Eftersom delay_key_write säkerställer att databasen inte kommer att spola MyISAM-nyckelfilen efter varje enskild skrivning. Därför, om du skriver ytterligare en gång inom en snar framtid, kommer du att sparas ganska mycket tid.

Här är ett annat coolt tips som vi valde från MySQL bästa praxis: Att aktivera delay_key_write är olika för varje version. För att se hur du aktiverar det i en specifik version, se den officiella MySQL-webbplatsens manual.

20 Använd Stack Trace för att isolera buggar

Efter dessa MySQL bästa praxis, är detta tips lånat från Sky SQL eftersom det bara är för enkelt och för bekvämt för att lämnas utanför.

MySQL stack_trace kan användas för att isolera olika buggar. Istället för att gräva i alla möjliga användningsområden, kanske programmeraren vill notera hur lätt en nollpekare kan förstöra din kod.

Med detta Sky SQL-tips blir det mycket enklare att hitta, spåra och fixa.

21 MySQL ändra ROOT-lösenordet

Att ändra ROOT-lösenordet kan tyckas vara grundläggande, men att veta hur man gör det är lika viktigt för ditt hemoperativsystem såväl som på MySQL-servrar.

Ibland händer det att övernitiska nybörjare och frånvarande erfarna användare inte kan lista ut varför de inte kan ändra vissa inställningar och returnerar fel. Det kan vara så enkelt som att ge dig själv ROT-åtkomst. En användare ska inte ens behöva googla på det.

Så här ställer du in ROOT-lösenordet och hur du ändrar en användares ROOT-lösenord:

//Straightforward MySQL 101 $mysqladmin -u rootpassword [Type in selectedpassword] //Changingusers ROOT password $mysqladmin -u root -p [type oldpassword] newpass [hit enter and type new password. Pressenter] //Use mysqlsqlcommand $mysql -u root -p //prompt "mysql>" pops up. Enter: $use MySQL; //Enter usernameyouwant to change the password for $update user set password=PASSWORD (Type new PasswordHere) where User = 'username'; //Don'tforget the previoussemicolon, nowreload the settings for the user'sprivileges $flush privileges; $quit

22 Fixa dina konfigurationsfiler

22 MySQL bästa praxis att följa som utvecklare under 2019

MySQL Tuner är ett Perl-skript som på något sätt kan optimera din prestanda genom att föreslå ändringar i dina konfigurationsfiler.

Om några tips och tricks i MySQL är otroligt bekväma, är verktyg som MySQL Tuner en gåva från gud som förtjänar att vara i en helt egen kategori.

Det är något som kan användas av både nybörjare och proffs. MySQL Tuner är inte ett specifikt tips för MySQL, så det finns en mängd olika tweaks och mods som kan tillämpas. Ju mer du använder det, desto fler tweaks kan du lära dig att tillämpa för eget bruk.

Det kan tyckas skrämmande till en början, men det är därför du kan hitta manualen –man db samt alla anteckningar, nödvändig läsning och inställningar på projektets officiella hemsida. Med allt detta borde MySQL Tuner snabbt bli ditt bästa verktyg för att påskynda MySQL och testa dina konfigurationsfiler.

Avslutande tankar om de bästa MySQL-metoderna

Inom datavetenskapens värld är MySQL utan tvekan ett av de viktigaste och mest inflytelserika programmen som någonsin dykt upp. Det är så involverat och mångsidigt att precis när det ser ut som att alla möjliga knep och genvägar har upptäckts, kommer någon annan med ett nytt sätt att använda ett nytt argument eller inställning.

Vi har endast beskrivit bästa metoder för MySQL som alla borde känna till. Men ju mer du använder MySQL, desto mer kommer du att använda dessa. Du kan öva SQL online och ställa in SQL-test för dig själv. Du kommer sedan att utveckla dina egna knep och hitta dina egna bästa tips som du kan lita på såsom limit SQL, SQL radnummer, och förstå varför du bör välja MySQL i första hand.

Om du tyckte om att läsa den här artikeln om MySQL bästa praxis, bör du också läsa dessa:

Inspelningskälla: wpdatatables.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer