Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация таблицы и блокировка 
:(
    Опции темы
maxipub
Дата 25.12.2018, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: 1
Всего: 1



Добрый день.

Добавляю блокировки в готовый проект. Есть блокировка:

Код
LOCK TABLES table AS t WRITE


Дошел до запроса оптимизации таблицы (вызывается после удаления данных из нее):

Код
OPTIMIZE TABLE table


Первое, с чем столкнулся, в оптимизации не принимаются алиасы для таблиц, запрос вида:

Код
OPTIMIZE TABLE table AS t


Вызывает ошибку.

Второе - оптимизация таблиц при блокировке просто игнорируется, т.е. даже так:

Код
LOCK TABLES table WRITE


Запрос:

Код
OPTIMIZE TABLE table


Будет просто проигнорирован. Более того, даже если попытаться оптимизировать при блокировке таблицу, которая не заблокирована, так же ничего не происходит: ни оптимизации, ни ошибок что таблица "was not locked with LOCK TABLES", вообще ничего. Запрос просто игнорируется.

Перечитал ман, что-то ничего там про это нет. Поиск так же не дал результатов. Это нормальное поведение?
PM MAIL   Вверх
Akina
Дата 26.12.2018, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Начать вопрос следовало бы с версии сервера и движка оптимизируемой таблицы.

Цитата(maxipub @  25.12.2018,  14:08 Найти цитируемый пост)
Первое, с чем столкнулся, в оптимизации не принимаются алиасы для таблиц

Синтаксис и не предусматривает этого. Да и какой смысл в алиасе? 

Цитата(maxipub @  25.12.2018,  14:08 Найти цитируемый пост)
оптимизация таблиц при блокировке просто игнорируется

Операция требует возможности эксклюзивной блокировки таблицы. Если блокировка невозможна - ну не судьба... 

Цитата(maxipub @  25.12.2018,  14:08 Найти цитируемый пост)
если попытаться оптимизировать при блокировке таблицу, которая не заблокирована

Не очень понятная фраза.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxipub
Дата 26.12.2018, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: 1
Всего: 1



Цитата(Akina @  26.12.2018,  08:50 Найти цитируемый пост)
Начать вопрос следовало бы с версии сервера и движка оптимизируемой таблицы.

MySQL
5.5.25
5.7.19

MyISAM

Цитата(Akina @  26.12.2018,  08:50 Найти цитируемый пост)
Синтаксис и не предусматривает этого. Да и какой смысл в алиасе?

Смысла нет. А вот логика в том, что если в запросе к заблокированной таблице обращение к ней идет по алиасу, то и блокировать ее нужно с алиасом. А раз блокируем по алиасу, то и оптимизировать по алиасу. Такая вот логика... Но раз:

Цитата(Akina @  26.12.2018,  08:50 Найти цитируемый пост)
Операция требует возможности эксклюзивной блокировки таблицы. Если блокировка невозможна - ну не судьба... 

То все понятно. Перемещу оптимизацию сразу за снятие болкировки.

Кстати, никогда не понимал смысла блокировки по алиасу. Это же просто ссылка/ярлык. Работа ведь выполняется все равно с конечно таблицей. Почему нельзя просто ее заблокировать и все. Разве не все равно, по какому алиасу обращаться к ней...

PM MAIL   Вверх
Akina
Дата 26.12.2018, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(maxipub @  26.12.2018,  12:08 Найти цитируемый пост)
логика в том, что если в запросе к заблокированной таблице обращение к ней идет по алиасу, то и блокировать ее нужно с алиасом.

Оптимизация требует ЭКСКЛЮЗИВНОЙ блокировки. О каких запросах и алиасах речь? 

Цитата(maxipub @  26.12.2018,  12:08 Найти цитируемый пост)
никогда не понимал смысла блокировки по алиасу. Это же просто ссылка/ярлык.

А два симлинка на папку - один с правами на чтение, другой на чтение-запись, - тоже непонятны? А парадный и чёрный ход в доме? Работа-то, конечно, выполняется с одной и той же таблицей, но каждый алиас предлагает свой путь к данным, со своими правами, ограничениями и контролями.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1104 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.