sql >> Databáze >  >> RDS >> Mysql

Top 10 osvědčených postupů v MySQL

MySQL je druhý nejrozšířenější open-source systém pro správu relačních databází na světě. Stala se tak populární pro svůj stálý rychlý výkon, vysokou spolehlivost a snadné použití. Tento článek představuje některé osvědčené postupy v MySQL.

Osvědčené postupy v MySQL

1. Vždy používejte správný datový typ

Používejte datové typy založené na povaze dat. Pokud použijete irelevantní datové typy, může to spotřebovat více místa nebo může vést k chybám.
Příklad:Použití varchar (20) k uložení hodnot data a času namísto datového typu DATETIME povede k chybám během výpočtů souvisejících s datem a časem a také možný případ uložení neplatných dat.

2. Použijte CHAR (1) před VARCHAR(1)

Pokud zadáte jeden znak, použijte CHAR(1) místo VARCHAR(1), protože VARCHAR(1) zabere extra bajt pro uložení informací

3. Použijte datový typ CHAR k uložení pouze dat s pevnou délkou

Příklad:Použití char(1000) místo varchar(1000) spotřebuje více místa, pokud je délka dat menší než 1000

4. Vyhněte se používání regionálních formátů data

Když používáte datový typ DATETIME nebo DATE, vždy použijte formát data YYYY-MM-DD nebo formát data ISO, který vyhovuje vašemu SQL Engine. Jiné regionální formáty jako DD-MM-RRRR, MM-DD-RRRR nebudou správně uloženy.

5. Indexovat klíčové sloupce

Ujistěte se, že indexujete sloupce, které se používají v klauzulích JOIN, aby dotaz rychle vrátil výsledek.
Pokud použijete příkaz UPDATE, který zahrnuje více než jednu tabulku, ujistěte se, že všechny sloupce, které se používají ke spojení tabulek, jsou indexováno

6. Nepoužívejte funkce nad indexovanými sloupci

Použití funkcí nad indexovanými sloupci maří účel indexu. Předpokládejme, že chcete získat data, kde první dva znaky zákaznického kódu jsou AK, nepište
SELECT sloupce FROM tabulky WHERE vlevo (customer_code,2)='AK'
, ale přepište je pomocí
SELECT sloupce FROM tabulky WHERE customer_code jako 'AK%'
, které využije index, což vede k rychlejší době odezvy.

7. SELECT * použijte pouze v případě potřeby

Nepoužívejte v kódu jen slepě SELECT *. Pokud je v tabulce mnoho sloupců, vrátí se všechny, což zpomalí dobu odezvy, zejména pokud výsledek odešlete do front-endové aplikace.
Explicitně zadejte názvy sloupců, které jsou skutečně potřeba.

8. Doložku ORDER BY použijte pouze v případě potřeby

Pokud chcete výsledek zobrazit v aplikaci front-end, nechte ji OBJEDNAT sadu výsledků. To v SQL může zpomalit dobu odezvy ve víceuživatelském prostředí.

9. Vyberte správný databázový stroj

Pokud vyvíjíte aplikaci, která čte data častěji než zapisuje (např. vyhledávač), zvolte úložiště MyISAM.
Pokud vyvíjíte aplikaci, která zapisuje data častěji než čte (např. bankovní transakce v reálném čase), zvolte INNODB storage engine.
Výběr špatného storage engine ovlivní výkon

10. Kdykoli je to potřeba, použijte klauzuli EXISTS

Pokud chcete zkontrolovat existenci dat, nepoužívejte místo toho
If (SELECT count(*) z tabulky WHERE col='nějaká hodnota')>0
, použijte klauzuli EXISTS
If EXISTS(SELECT * from Table WHERE col='some value')
což je rychlejší doba odezvy.


  1. Kurz transakcí SQL

  2. Top 5 nástrojů pro monitorování MySQL

  3. NASTAVIT ZAPOČET NA použití

  4. Vložení řádku, pouze pokud tam ještě není