MySQL е втората най-широко използвана система за управление на релационни бази данни с отворен код в света. Той стана толкова популярен заради постоянната си бърза производителност, висока надеждност и лекота на използване. Тази статия представя някои от най-добрите практики в MySQL.
Най-добри практики в MySQL
1. Винаги използвайте правилен тип данни
Използвайте типове данни въз основа на естеството на данните. Ако използвате неподходящи типове данни, това може да заеме повече място или да доведе до грешки.
Пример:Използването на varchar (20) за съхраняване на стойности за дата и час вместо тип данни DATETIME ще доведе до грешки по време на изчисления, свързани с датата и времето, а също така възможен случай на съхраняване на невалидни данни.
2. Използвайте CHAR (1) над VARCHAR(1)
Ако низовете един знак, използвайте CHAR(1) вместо VARCHAR(1), защото VARCHAR(1) ще отнеме допълнителен байт за съхраняване на информация
3. Използвайте тип данни CHAR, за да съхранявате само данни с фиксирана дължина
Пример:Използването на char(1000) вместо varchar(1000) ще изразходва повече място, ако дължината на данните е по-малка от 1000
4. Избягвайте използването на регионални формати за датата
Когато използвате тип данни DATETIME или DATE, винаги използвайте формат за дата ГГГГ-ММ-ДД или ISO формат на датата, който отговаря на вашия SQL Engine. Други регионални формати като ДД-ММ-ГГГ, ММ-ДД-ГГГГ няма да се съхраняват правилно.
5. Индексни ключови колонии
Уверете се, че сте индексирали колоните, които се използват в клаузите JOIN, така че заявката да връща резултата бързо.
Ако използвате оператор UPDATE, който включва повече от една таблица, уверете се, че всички колони, които се използват за присъединяване към таблиците, са индексиран
6. Не използвайте функции над индексирани колонии
Използването на функции над индексирани колони нарушава целта на индекса. Да предположим, че искате да получите данни, където първите два знака на клиентския код са AK, не пишете
SELECT колони ОТ таблицата WHERE left (customer_code,2)='AK'
, а ги пренапишете с
ИЗБЕРЕТЕ колони ОТ таблица WHERE customer_code като 'AK%'
, което ще използва индекс, което води до по-бързо време за отговор.
7. Използвайте SELECT * само ако е необходимо
Не използвайте просто сляпо SELECT * в кода. Ако има много колони в таблицата, всички ще бъдат върнати, което ще забави времето за реакция, особено ако изпратите резултата на предно приложение.
Въведете изрично имената на колоните, които всъщност са необходими.
8. Използвайте клауза ORDER BY само ако е необходимо
Ако искате да покажете резултата във входно приложение, оставете го да ПОРЪЧВА набора от резултати. Правенето на това в SQL може да забави времето за реакция в многопотребителската среда.
9. Изберете подходящ Database Engine
Ако разработите приложение, което чете данни по-често, отколкото четене (напр.:търсачка), изберете MyISAM машина за съхранение.
Ако разработите приложение, което записва данни по-често, отколкото четене (напр.:банкови транзакции в реално време), изберете машина за съхранение INNODB.
Изборът на грешен механизъм за съхранение ще повлияе на производителността
10. Използвайте клауза EXISTS, където е необходимо
Ако искате да проверите съществуването на данни, не използвайте
If (SELECT count(*) от Table WHERE col='някаква стойност')>0
вместо това използвайте клауза EXISTS
Ако EXISTS(SELECT * от таблица WHERE col='някаква стойност')
което е по-бързо във времето за отговор.