Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Резервирование таблицы за конкретным пользователем

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: Valick   (15.12.2012 в 17:35)   письмо автору
 
   для: Владимир55   (15.12.2012 в 17:27)
 

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

  Ответить  
 
 автор: Владимир55   (15.12.2012 в 17:27)   письмо автору
 
   для: Valick   (15.12.2012 в 17:06)
 

Спасибо!

Однако, это описание я и раньше читал, но оно от практики долековато.

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

Ведь одной приведенной Вами директивы совершенно недостаточно!

  Ответить  
 
 автор: 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);
?>

там оказывается можно блокировать сразу несколько таблиц или даже все оптом
вот тут подробнее расписано

  Ответить  
 
 автор: Владимир55   (15.12.2012 в 16:10)   письмо автору
 
   для: Valick   (15.12.2012 в 15:07)
 

Можете пояснить это примером?

Пусть есть две таблицы, tb_1 и tb_2. Как будет выглядеть такая система?

  Ответить  
 
 автор: cheops   (15.12.2012 в 15:36)   письмо автору
 
   для: Владимир55   (15.12.2012 в 13:35)
 

1. Да.
2. Используйте операторы LOCK TABLES и UNLOCK TABLES, если это MyISAM или транзакции, если это InnoDB.

  Ответить  
 
 автор: Valick   (15.12.2012 в 15:07)   письмо автору
 
   для: Владимир55   (15.12.2012 в 13:35)
 

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

  Ответить  
 
 автор: Владимир55   (15.12.2012 в 13:35)   письмо автору
 
   для: Владимир55   (15.12.2012 в 13:08)
 

Правильно ли я понимаю, что для использования временных таблиц необходимо выполнять CREATE TEMPORARY TABLE непосредственно в том скрипте, где эти таблицы будут использованы?

И все же, для понимания: а как решить эту задачу с обычными таблицами, используя блокировку, заставляющую остальных посетителей ждать освобождения таблиц?

  Ответить  
 
 автор: Владимир55   (15.12.2012 в 13:33)   письмо автору
 
   для: oradev   (15.12.2012 в 13:24)
 

С ООП я уже наигрался - быстродействие падает жутко. На мой взгляд, ООП следует применять только там, где без него не обойтись.

  Ответить  
 
 автор: oradev   (15.12.2012 в 13:24)   письмо автору
 
   для: Владимир55   (15.12.2012 в 13:08)
 

А почему для решения данной задачи не применить ООП, с каждым пользователем будет инициирован объект класса фильт. Подобное я делал когда писались GUI-приложения.

  Ответить  
 
 автор: oradev   (15.12.2012 в 13:23)   письмо автору
 
   для: Владимир55   (15.12.2012 в 13:08)
 

А почему для решения данной задачи не применить ООП, с каждым пользователем будет инициирован объект класса фильт.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования