Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, объясните пожалуйста (или поделитесь ссылкой) каков механизм (т.е. что мускул делает/смотрит/проверяет/создаёт и в какой последовательности) работы следующих типов запросов:
select если ищем по не ключевому полю;
select если ищем по не ключевому полю по диапазону (т.е. например SELECT name FROM users WHERE date BETWEEN date1 AND date2);
select если ищем по ключевому полю;
select если ищем по ключевому полю по диапазону (т.е. например (id - ключевое поле) SELECT name FROM users WHERE id BETWEEN 1 AND 1000);
optimize;
update;
insert;
Хотелось бы знать что как работает, что создаётся, что может кешироваться, и соответственно сколько времени уходит на каждый этап.
Отредактированно AngelInTwilight (16.01.2012 21:10:24)
Неактивен
1. читает табличку последовательно
2. аналогично
3. читает индекс, потом данные
4. аналогично
5. перестраивает индексы так, чтобы они были более равномерно распределены
6. обновляет
7. вставляет
Неактивен
Йохохо) спасибо, кэп!
а то что например select по ключевому полю там создаёт деревья и как-то оптимизирует поиск это не?
Неактивен
В третьем пункте сказано: читает индекс, потом данные.
Индекс хранится в виде бинарного дерева и по нему происходит поиск нужного значения.
Но поиск по индексу происходит лишь в том случае, когда это более эффективно, чем прочитать таблицу целиком (FTS - Full Table Scan).
Неактивен