Главная Новости

10 лучших приемов оптимизации MySQL

Опубликовано: 19.10.2017

1. LIMIT 1 при выборке одной строки

Есть люди из калифорнии (хотя бы один человек)?

Плохой вариант:

SELECT * FROM USER WHERE state = 'California' ;

Хороший вариант:

SELECT 1 FROM USER WHERE state = 'California' LIMIT 1 ;

2. Оптимизируйте запросы для кеша запросов

Кеширование запросов - один из наиболее эффективных способов повышения производительности.

Плохой вариант:

// кеш НЕ работает $r = mysqli_query ( "SELECT username FROM user WHERE signup_date >= CURDATE()" ) ;

Хороший вариант:

// кеш работает! $today_date = date ( "Y-m-d" ) ; $r = mysqli_query ( "SELECT username FROM user WHERE signup_date >= ' $today_date '" ) ;

3. Индексируйте поисковые столбцы

Индексы служат не только для первичных ключей и уникальных значений. Также они ускоряют поиск 1) .

last_name LIKE 'a%'

- используется индекс, быстро.

WHERE post_content LIKE '%tomato%'

- индекс не используется, медленно.

Не создавайте индексы на таблицах, число записей в которых меньше нескольких тысяч. Для таких размеров выигрыш от использования индекса будет почти незаметен.

http://ruhighload.com/

4. Индексируйте и используйте одинаковые типы столбцов для объединения

Если в приложении много запросов с JOIN, необходимо проиндексировать столбцы, по которым идет объединение, в обоих таблицах.

Также для этих столбцов следует использовать одинаковые типы. Например, при объединении столбцов DECIMAL и INT, по крайней мере один из индексов не будет использоваться. Для строковых столбцов также важна кодировка.

Новости

Карта
rss