Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных SQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: Специалист
Рейтинг: 1679
∙ повысить рейтинг »
_Ayl_
Статус: Студент
Рейтинг: 1423
∙ повысить рейтинг »
vladisslav
Статус: 5-й класс
Рейтинг: 834
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Базы данных и SQL

Номер выпуска:447
Дата выхода:06.11.2009, 13:30
Администратор рассылки:Victor Pyrlik, Модератор
Подписчиков / экспертов:612 / 183
Вопросов / ответов:1 / 2

Вопрос № 173882: Всем привет! Поделитесь, где лично вы используете временные таблицы MySQL. Что-то я совсем не могу придумать, в каких областях они могут пригодиться....



Вопрос № 173882:

Всем привет!

Поделитесь, где лично вы используете временные таблицы MySQL.
Что-то я совсем не могу придумать, в каких областях они могут пригодиться.

Отправлен: 01.11.2009, 12:25
Вопрос задал: Прим Палвер, 9-й класс
Всего ответов: 2
Страница вопроса »


Отвечает Гуревич Александр Львович, Специалист :
Здравствуйте, Прим Палвер.

Вот несколько случаев, когда рекомендуется использовать временные таблицы в MySQL:

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

- Если используется параметр SQL_SMALL_RESULT, MySQL будет применять временную таблицу, которую разместит в памяти. Параметр SQL_SMALL_RESULT является опцией, специфической для MySQL. Данный параметр можно использовать с GROUP BY или DISTINCT, чтобы сообщить оптимизатору, что результирующий набор данных будет небольшим. В этом случае MySQL для хранения результирующей таблицы вместо сортировки будет использовать быстрые временные таблицы.

- Для DISTINCT в сочетании с ORDER BY, помимо этого, во многих случаях также требуется временная таблица.

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


С уважением,
-----
Тот, кто правильно спрашивает, достигает гораздо большего, чем тот, кто правильно отвечает.

Ответ отправил: Гуревич Александр Львович, Специалист
Ответ отправлен: 01.11.2009, 15:37

Оценка ответа: 5
Комментарий к оценке:
Спасибо за труд, но это немного не тот ответ. Вернее, не ответ на вопрос, который я задал. Какие практические примеры использования их? А это я и в учебнике прочитал. Дальше...

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256079 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Eugen, 3-й класс :
    Здравствуйте, Прим Палвер.
    1. Временные таблицы по возможности создаются в памяти (Type=HEAP), поэтому с ними быстрее операции INSERT/UPDATE (при превышении определенного объема они автоматически пишутся на диск в формате MyISAM).
    2. Временные таблицы автоматически удаляются при закрытии соединения; можно не заморачиваться с DROP TABLE. В этом основная прелесть, когда НЕ используется pconnect()
    3. Временные таблицы видны только для текущего соединения - при insert/update можно не делать LOCK TABLE.
    4. Поскольку mysql не поддерживает вложенные SELECT, можно разбить один сложный SELECT на несколько простых с использованием временных таблиц (CREATE TEMPORARY TABLE tmp ..., INSERT INTO tmp SELECT..., SELECT FROM tmp ...)
    5. Для создания временных таблиц нужны соответствующие привилегии.

    Ответ отправил: Eugen, 3-й класс
    Ответ отправлен: 01.11.2009, 18:55

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 256087 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.10 от 26.10.2009

    В избранное