|
|
|
|
|
для: Владимир55
(15.12.2012 в 17:27)
| | тогда не знаю, нужно испытывать в реальных условиях, я стараюсь строить логику так чтобы блокировка была не нужна.
кстати алиасы используются? блокировать нужно именно их всех, даже если к одной таблице их неслолько | |
|
|
|
|
|
|
|
для: Valick
(15.12.2012 в 17:06)
| | Спасибо!
Однако, это описание я и раньше читал, но оно от практики долековато.
Вот как в реальном скрипте сделать блокировку, чтобы записывать в первую таблицу только в том случае, если она при этом не используется в другом сеансе?
А потом в ней искать, но запретить чтение и запись из другого сеанса? И писать во вторую таблицу, запретив читать и писать из нее другим посетителям?
Ведь одной приведенной Вами директивы совершенно недостаточно! | |
|
|
|
|
|
|
|
для: Владимир55
(15.12.2012 в 16:10)
| |
<?php
$ct=mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db($dbname,$ct);
$query="LOCK TABLES tb_1 READ, tb_2 WRITE";
$res=mysql_query($query);
?>
|
там оказывается можно блокировать сразу несколько таблиц или даже все оптом
вот тут подробнее расписано | |
|
|
|
|
|
|
|
для: Valick
(15.12.2012 в 15:07)
| | Можете пояснить это примером?
Пусть есть две таблицы, tb_1 и tb_2. Как будет выглядеть такая система? | |
|
|
|
|
|
|
|
для: Владимир55
(15.12.2012 в 13:35)
| | 1. Да.
2. Используйте операторы LOCK TABLES и UNLOCK TABLES, если это MyISAM или транзакции, если это InnoDB. | |
|
|
|
|
|
|
|
для: Владимир55
(15.12.2012 в 13:35)
| | с обычными просто устанавливаете два соединения и блокируете обе таблицы, если блокировка прошла успешно, то продолжаете работу, если нет, то принимаете решение ждать разблокировки нужной таблицы либо делаете отмену заблокированной и повторяете процедуру через интервал времени. | |
|
|
|
|
|
|
|
для: Владимир55
(15.12.2012 в 13:08)
| | Правильно ли я понимаю, что для использования временных таблиц необходимо выполнять CREATE TEMPORARY TABLE непосредственно в том скрипте, где эти таблицы будут использованы?
И все же, для понимания: а как решить эту задачу с обычными таблицами, используя блокировку, заставляющую остальных посетителей ждать освобождения таблиц? | |
|
|
|
|
|
|
|
для: oradev
(15.12.2012 в 13:24)
| | С ООП я уже наигрался - быстродействие падает жутко. На мой взгляд, ООП следует применять только там, где без него не обойтись. | |
|
|
|
|
|
|
|
для: Владимир55
(15.12.2012 в 13:08)
| | А почему для решения данной задачи не применить ООП, с каждым пользователем будет инициирован объект класса фильт. Подобное я делал когда писались GUI-приложения. | |
|
|
|
|
|
|
|
для: Владимир55
(15.12.2012 в 13:08)
| | А почему для решения данной задачи не применить ООП, с каждым пользователем будет инициирован объект класса фильт. | |
|
|
|
|