Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2016, 20:41   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Выбор логики работы с MEMORY (HEAP) таблицами MySql

Вообщем 2 варианта построения и работы с такой таблицей:

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

Вариант №1)
таблица вида :
n/x/y/otrab
где,
n - AUTO_INCREMENT;
x,y - данные;
otrab - tinyint(1).

Со временем таблица заполняется данными
Программа считывает данные таблицы и помечает в поле otrab каждой записи которую считало. При следующем запросе программ считывает уже все записи которые не отмечены в otrab, и соответственно отмечает в otrab те которые считала.

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

Вариант №2)
таблица вида :
n/x/y
где,
n - AUTO_INCREMENT;
x,y - данные;

то есть та же таблица, только без otrab.

Так же таблица со временем заполняется данными.
Программа считывает все данные и после этого очищаем всю таблицу с помощью TRUNCATE.

В этом втором варианте таблица не будет разрастаться.

Так вот вопрос, какой вариант будет более производительный и почему?
Склоняюсь к второму варианту сам.
Illusiony вне форума Ответить с цитированием
Старый 13.02.2016, 21:08   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

TRUNCATE хоть и быстрее DELETE, но вне транзакции и жди проблем
Цитата:
достичь порядка тысячи записей и более
Было бы о чем говорить.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.02.2016, 23:02   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
TRUNCATE хоть и быстрее DELETE, но вне транзакции и жди проблем
Было бы о чем говорить.
Вы имеете ввиду, что если будет конкурентный запрос во время TRUNCATE, то он может пройти все равно?

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

Последний раз редактировалось Illusiony; 13.02.2016 в 23:07.
Illusiony вне форума Ответить с цитированием
Старый 13.02.2016, 23:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

http://www.mysql.ru/docs/man/TRUNCATE.html
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.02.2016, 23:18   #5
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

А зачем тут база? через файл можно же решить, без всяких ненужных нагрузок.
come-on вне форума Ответить с цитированием
Старый 13.02.2016, 23:44   #6
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
А зачем тут база? через файл можно же решить, без всяких ненужных нагрузок.
Это сервер на хостинге и программа на компе отдельная у пользователя
Illusiony вне форума Ответить с цитированием
Старый 13.02.2016, 23:45   #7
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

И что? что мешает использовать файлы?
come-on вне форума Ответить с цитированием
Старый 13.02.2016, 23:46   #8
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Спасибо.
Illusiony вне форума Ответить с цитированием
Старый 14.02.2016, 00:13   #9
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
И что? что мешает использовать файлы?
Потому что это не одна таблица + это в оперативке что быстрее+ таких таблиц и не только таких может быть сотни+ это нужно как то организовывать если в файлах( а этого я никогда не делал) + нужно просматривать данные таблиц, что удобно в PHPMyAdmin/
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проектирование логики работы ПО Человек_Борща Софт 23 06.07.2015 16:31
Работа с несколькими таблицами MySql Furyon SQL, базы данных 1 02.02.2011 09:30
Автоматизация работы с таблицами R-Jay Microsoft Office Excel 8 19.10.2010 10:53
> лучший фреймворк для работы с таблицами из мускуля Филлип PHP 5 27.01.2010 22:01
Форма для работы с двумя таблицами scofieldsj Microsoft Office Access 1 06.12.2009 15:13