Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Почему MySql блокирует таблицы?

4
03 февраля 2007 года
mike
3.7K / / 01.10.2002
Есть простой запрос:

SELECT * FROM table WHERE date>'' AND date<''

записей много, запрос выполняется долго и это не критично.

Вопрос, почему пока выполняется этот запрос, с таблицей ничего нельзя сделать? Все запросы на добавление и обновление становятся в очередь и ждут завершения выполнения основного запроса.

Мне все равно, будут учтены записи добавляемые/обновляемые в этот момент или нет. Может есть что-то типа SELECT IGNORE или SELECT NONBLOCK ???
337
03 февраля 2007 года
shine
719 / / 09.06.2006
По-моему вот здесь описана проблема и способы ее решения: http://www.mysql.ru/docs/man/Table_locking.html
92
03 февраля 2007 года
Тень Пса
2.2K / / 19.10.2006
если относительно SELECT, то вот:

[quote=Доки на винте]
HIGH_PRIORITY даст SELECT более высокий приоритет, чем инструкциям, которые модифицируют таблицу. Вы должны использовать это только для запросов, которые являются очень быстрыми и должны быть выполнены сразу. Запрос SELECT HIGH_PRIORITY выполнится, если таблица блокирована для чтения, даже если имеется инструкция модификации, которая ждет таблицу.
[/quote]

c UPDATE вообще фишка :D

[quote=Те же доки, с того же винта]
Если Вы определяете ключевое слово LOW_PRIORITY, выполнение UPDATE будет отсрочено до наступления момента, когда никакие клиенты не читают из таблицы.
[/quote]

в DELETE может вот это помочь... но не уверен что ключевое слово меняет приоритет выполнения запроса.....

[quote=Опять оттуда же ;)]
Если Вы определяете слово QUICK, то драйвер таблицы не будет объединять индексные листья в течение процесса удаления, что может ускорять некоторые виды удаления.
[/quote]

если поможет, гут, а нет... а ну и фик с ним :)
4
05 февраля 2007 года
mike
3.7K / / 01.10.2002
Сужаем задачу. Долгие SELECT + быстрые INSERT.

DELAYED INSERT не подходит. Вот что меня заинтересовало из статьи:

Цитата:

Если имеются проблемы при выполнении команд INSERT совместно с SELECT, перейдите на новые таблицы MyISAM, которые поддерживают одновременное выполнение команд SELECT и INSERT.



Что за "новые" таблицы MyISAM ?

256
05 февраля 2007 года
foxweb
1.0K / / 27.07.2005
Цитата: mike
Сужаем задачу. Долгие SELECT + быстрые INSERT.

DELAYED INSERT не подходит. Вот что меня заинтересовало из статьи:



Что за "новые" таблицы MyISAM ?



не такие уж они и "новые". как минимум с версии 3.53. наверно статья старая ) по умолчанию MySQL применяет свой собственный движок таблиц MyISAM.

337
05 февраля 2007 года
shine
719 / / 09.06.2006
Цитата: mike
Что за "новые" таблицы MyISAM ?



Вот тут(английский): http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог