Опубликовано: 19.10.2017
Есть люди из калифорнии (хотя бы один человек)?
Плохой вариант:
SELECT * FROM USER WHERE state = 'California' ;Хороший вариант:
SELECT 1 FROM USER WHERE state = 'California' LIMIT 1 ;Кеширование запросов - один из наиболее эффективных способов повышения производительности.
Плохой вариант:
// кеш НЕ работает $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 '" ) ;Индексы служат не только для первичных ключей и уникальных значений. Также они ускоряют поиск 1) .
last_name LIKE 'a%'- используется индекс, быстро.
WHERE post_content LIKE '%tomato%'- индекс не используется, медленно.
Не создавайте индексы на таблицах, число записей в которых меньше нескольких тысяч. Для таких размеров выигрыш от использования индекса будет почти незаметен.http://ruhighload.com/
Если в приложении много запросов с JOIN, необходимо проиндексировать столбцы, по которым идет объединение, в обоих таблицах.
Также для этих столбцов следует использовать одинаковые типы. Например, при объединении столбцов DECIMAL и INT, по крайней мере один из индексов не будет использоваться. Для строковых столбцов также важна кодировка.