32 совета для ускорения MySQL запросов

Если вам интересно, как создавать по-настоящему быстрые запросы к MySQL, эта статья для вас.

1. Используйте постоянное соединение с базой данных, чтобы избежать системных издержек.

2. Проверьте, чтобы на столбцах с высоким количеством уникальных элементов был PRIMARY KEY. Например, у столбца `gender` есть всего 2 варианта (male и female). Уникальный ID пользователя, напротив, содержит большое количество значений и подходит для того, чтобы стать первичным ключом.

3. Желательно, чтобы все связи между таблицами были с индексами (что подразумевает, что у них должны быть одинаковые типы данных, благодаря этому запросы будут быстрее). Также проверьте, чтобы поля, в которых необходимо делать поиск (часто появляются в выражениях WHERE, ORDER BY или GROUP BY) имели индексы. Но не добавляйте слишком много индексов: худшее, что вы можете сделать, это добавить индекс каждому столбцу в таблице (я не видел более 5 индексов даже в таблице с 20-30 столбцами). Если вы никогда не сравниваете столбец с другими данными и не проводите по нему поиск, незачем ставить на нём индекс.
Читать далее

Кто еще не в курсе «goDB — библиотека для работы с MySQL из PHP»

При взаимодействии между PHP и MySQL затрагиваются две области:

  1. Язык SQL и его реализация в MySQL.
  2. Набор функций и классов PHP, предоставляющих интерфейс для доступа к MySQL.

Как показывает практика, попытка построить над языком SQL какую-либо абстракцию средствами PHP, обычно не приводит ни к чему хорошему. В большинстве случаев получаются громоздкие, медленные, не расширяемые монстры.

Данная библиотека не пытается сделать ничего подобного, а всецело направленна только на улучшение интерфейса. Рассмотрим элементы стандартного интерфейса, которые было бы желательно улучшить. А для начала приведём два примера. Читать далее