Страница 1 из 1
TEMPORARY tables in MySQL
Добавлено: 2011-01-06 17:21:37
Gamerman
A TEMPORARY table is visible only to the current connection, and is dropped automatically when the connection is closed.
Временная таблица видима только для текущего соединения.
Но если соединение создается с опцией автореконнект, то после автореконнекта вроде как уже другая сессия? Что будет с такой таблицей в данном случае?
Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-07 19:51:58
FiL
ну как что... дропнется. А что ей еще делать?
Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-07 19:54:44
Gamerman
Ну как-то неправильно это. Работает софтинка в расчете на то, что темповая таблица существует, а тут бац, и нет ее.
Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-07 21:40:17
FiL
значит не надо использовать временные таблицы там, где может произойти отключение клеинта.
Оно для этого не предназначено.
Как я понимаю, единственная радость временных таблиц в том, что в разных сессиях они разные при одном и том-же имени. А в остальном они вроде как от обычных не отличаются (ну если не считать, что автоматически зачищаются при закрытии сессии). Так что если софтинке нужна таблица, то пускай делает не временную и всё.
Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-08 9:49:57
Gamerman
Но в таком случае, при неудачном завершении работы софтинки, временные таблицы останутся на сервере. Кроме того, мне кажется, что работы с временными таблицами идет быстрее.
Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-10 11:49:04
FiL
Gamerman писал(а):Но в таком случае, при неудачном завершении работы софтинки, временные таблицы останутся на сервере. Кроме того, мне кажется, что работы с временными таблицами идет быстрее.
быстрее - нет. С чего вдруг?
А то, что остаются... так вытам определитесь, хочется, чтоб оставались или чтоб не оставались?
А то "если я отвалился и буду переподключаться, то хочу, чтоб осталось, а если я отвалился потому, что сдох, то хочу, чтоб не оставалось". Это хорошо, но со стороны сервера это определить невозможно почему там клиент отвалился.
Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-10 12:00:16
Gamerman
По-поводу "быстрее" - ошибся, мне показалось, что где-то я читал об этом.
Плюс в том, что каждый пользователь может создавать временную таблицу с одинаковым именем, и они не будут конфликтовать.
Если ее не удалять (то есть делать ее не TEMPORARY), то при некорректном завершении работы программы они останутся на сервере. Будет мусор.
С другой стороны, хотелось бы, чтобы при кратковременном отключении связи, программа переподключалась автоматически (есть такая опция при установке соединения), но при этом временные таблицы оставались те же.
Разве плохое желание?

Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-10 18:53:22
FiL
желание хорошее. Определить кто есть новый коннект, а кто старый переподключившийся не представляется возможным

Re: TEMPORARY tables in MySQL
Добавлено: 2011-01-10 19:21:44
Gamerman
Ну, можно, например, при подключении запоминать номер коннекта, и перед использованием временной таблицы проверять его. Но тогда придется заново пересоздавать временную таблицу.