
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.12.2005, 08:45:51
|
|||
|---|---|---|---|
|
|||
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
Мой админ утверждает, что можно раздавать привилегии на блокировку таблиц не используя команду LOCK TABLES. В общем смотрел я в документации и ничего похоже не нашел (плохо искал, ну у меня это обычное дело). Администратор говорит, что Раздавать эту привилегю юзерам опасно, потому, что они могут заблокировать таблицу из которой должны только выберать записи, а ведь блокировка у меня используется только перед добавлением, на довольно продолжительное время. Еще говорит, что сам реализовал подобное(т.е. у юзера имели привилегию SELECT на N-ое кол-во таблиц в базе при этом могли блокировать только < N таблиц ), но только как он это делал мне не сказал, да я и не спрашивал, наверняка не вспомнит. Можете ли вы мне подсказать как это делается. Если такого не существует или не встречалось в вашей практике, то там и скажите, то за мои t-кол-во лет я такое не встречал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.12.2005, 10:35:05
|
|||
|---|---|---|---|
|
|||
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
SELECT ... FOR UPDATES; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.12.2005, 05:01:15
|
|||
|---|---|---|---|
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
http://dev.mysql.com/doc/refman/4.1/en/innodb-locking-reads.html но тут _все_ селекты должны выполнятся FOR UPDATE, обычные селекты не будут блокированы а зачем вообщем нужна блокировка? мутит что-то админ :) к тому же можно создать специального юзера и/или дать права на конкретную таблицу... -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.12.2005, 08:12:15
|
|||
|---|---|---|---|
|
|||
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
Про For UPDATES я знаю, вот только эту команду можно юзать на таблицах типа InnoDB, а на MyISAM нет. Я использую MyISAM. Так можно ли как-нибудь дать привилегию на блокировку таблицы именно на таблицу, а не на базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.12.2005, 08:23:34
|
|||
|---|---|---|---|
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
А вы можете объяснить, чего вы хотите добиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.12.2005, 17:49:53
|
|||
|---|---|---|---|
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
dogma Так можно ли как-нибудь дать привилегию на блокировку таблицы именно на таблицу, а не на базу? RTFM ;) "To use LOCK TABLES, you must have the LOCK TABLES privilege and the SELECT privilege for the involved tables." для админа: http://dev.mysql.com/doc/refman/5.0/en/grant.html -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.12.2005, 04:55:09
|
|||
|---|---|---|---|
|
|||
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
То, что это команда может использоваться только на таблицах их которых юзер может делать выбору я знаю (читал руководство) и объяснял это админу. Но он похоже слишком упертый или я не прав. Он говорит, что юзер может заблокировать табличку "А" из которой должен делать только выборку. При этом этот же юзер должен блокировать таблицы находящиеся в тойже базе, где и таблица "А". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.12.2005, 04:59:59
|
|||
|---|---|---|---|
|
|||
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
to DocAl В базе находятся таблицы типа MyISAM. Так вот - юзер имеет привилегию Select на 15 таблиц из этой базы, при этом он должен блокировать только 3 их них. Как этого добиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.12.2005, 10:59:20
|
|||
|---|---|---|---|
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
dogmato DocAl В базе находятся таблицы типа MyISAM. Так вот - юзер имеет привилегию Select на 15 таблиц из этой базы, при этом он должен блокировать только 3 их них. Как этого добиться? А зачем нужно вообще блокировать таблицы? и вообще блокировать в Вашем случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.12.2005, 08:47:53
|
|||
|---|---|---|---|
|
|||
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
блокировка используется при добвлении записей. В таблице есть поле ,котору увеличивается на 1 при добавление каждой записи следующим образом. дата | счетчик ... 29-12-2005| 567 30-12-2005| 568 31-12-2005| 569 01-01-2006| 1 02-01-2006| 2 ..... 29-12-2006| 600 30-12-2006| 601 31-12-2006| 602 01-01-2007| 1 02-01-2007| 2 ..... Т.е. сброс происходит первого числа каждого года ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.12.2005, 08:56:13
|
|||
|---|---|---|---|
|
|||
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
Забыл добавить. Следующее значение инкрементного (если можно так сказать) вычисляется из ризультата запроса Select max(inc_f) from table1. Т.к. с таблицей работают несколько юзеров одновременно, то существует вероятность внесения записей с одинаковым значением. Чтобы этого не случилось я и делаю блокировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.12.2005, 09:42:04
|
|||
|---|---|---|---|
Блокировка таблиц не используя LOCK TABLES |
|||
|
#18+
Э... А в чём глубокий смысл этой денормализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1853220]: |
0ms |
get settings: |
4ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 414ms |

| 0 / 0 |
