MySQL jest drugim najczęściej używanym systemem zarządzania relacyjnymi bazami danych typu open source na świecie. Stał się tak popularny ze względu na stałą szybkość działania, wysoką niezawodność i łatwość użytkowania. W tym artykule przedstawiono niektóre z najlepszych praktyk w MySQL.
Najlepsze praktyki w MySQL
1. Zawsze używaj właściwego typu danych
Używaj typów danych w oparciu o charakter danych. Jeśli użyjesz nieistotnych typów danych, może to zająć więcej miejsca lub może prowadzić do błędów.
Przykład:Używanie varchar (20) do przechowywania wartości daty i czasu zamiast typu danych DATETIME spowoduje błędy podczas obliczeń związanych z datą i godziną, a także możliwy przypadek przechowywania nieprawidłowych danych.
2. Użyj CHAR (1) zamiast VARCHAR(1)
Jeśli napiszesz pojedynczy znak, użyj CHAR(1) zamiast VARCHAR(1), ponieważ VARCHAR(1) zajmie dodatkowy bajt do przechowywania informacji
3. Użyj typu danych CHAR do przechowywania tylko danych o stałej długości
Przykład:użycie char(1000) zamiast varchar(1000) zużyje więcej miejsca, jeśli długość danych jest mniejsza niż 1000
4. Unikaj używania regionalnych formatów dat
Gdy używasz typu danych DATETIME lub DATE, zawsze używaj formatu daty RRRR-MM-DD lub formatu daty ISO, który odpowiada Twojemu silnikowi SQL. Inne formaty regionalne, takie jak DD-MM-RRRR, MM-DD-RRRR, nie będą prawidłowo przechowywane.
5. Kolumny klucza indeksu
Upewnij się, że indeksujesz kolumny, które są używane w klauzulach JOIN, aby zapytanie szybko zwróciło wynik.
Jeśli używasz instrukcji UPDATE, która obejmuje więcej niż jedną tabelę, upewnij się, że wszystkie kolumny używane do łączenia tabel są zindeksowany
6. Nie używaj funkcji nad indeksowanymi kolumnami
Używanie funkcji nad indeksowanymi kolumnami jest sprzeczne z przeznaczeniem indeksu. Załóżmy, że chcesz uzyskać dane, w których pierwsze dwa znaki kodu klienta to AK, nie pisz
SELECT kolumn FROM table WHERE left (customer_code,2)='AK'
ale przepisz je używając
SELECT kolumny FROM table WHERE customer_code, takie jak 'AK%'
, które będą korzystać z indeksu, co spowoduje szybszy czas odpowiedzi.
7. Użyj SELECT * tylko w razie potrzeby
Nie używaj na ślepo SELECT * w kodzie. Jeśli w tabeli jest wiele kolumn, wszystkie zostaną zwrócone, co spowolni czas odpowiedzi, szczególnie jeśli wyślesz wynik do aplikacji typu front-end.
Jawnie wpisz nazwy kolumn, które są faktycznie potrzebne.
8. Używaj klauzuli ORDER BY tylko w razie potrzeby
Jeśli chcesz pokazać wynik w aplikacji front-end, pozwól jej ZAMÓWIĆ zestaw wyników. Wykonanie tego w SQL może spowolnić czas odpowiedzi w środowisku wielu użytkowników.
9. Wybierz odpowiedni silnik bazy danych
Jeśli tworzysz aplikację, która częściej odczytuje dane niż zapisuje (np. wyszukiwarka), wybierz silnik pamięci masowej MyISAM.
Jeśli tworzysz aplikację, która zapisuje dane częściej niż czyta (np. transakcje bankowe w czasie rzeczywistym), wybierz silnik pamięci masowej INNODB.
Wybranie złego silnika pamięci masowej wpłynie na wydajność
10. W razie potrzeby użyj klauzuli EXISTS
Jeśli chcesz sprawdzić istnienie danych, nie używaj
If (SELECT count(*) z tabeli WHERE col='jakaś wartość')>0
zamiast tego użyj klauzuli EXISTS
If EXISTS(SELECT * from Table WHERE col='jakaś wartość')
co jest szybsze w czasie odpowiedzi.