|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2016, 20:41 | #1 |
Форумчанин
Регистрация: 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. В этом втором варианте таблица не будет разрастаться. Так вот вопрос, какой вариант будет более производительный и почему? Склоняюсь к второму варианту сам. |
13.02.2016, 21:08 | #2 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
TRUNCATE хоть и быстрее DELETE, но вне транзакции и жди проблем
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
13.02.2016, 23:02 | #3 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
Я предполагаю, что между очередными очистками таблицы в ней будет максимум всего несколько записей, таким образом мне лучше заменить TRUNCATE на delete этих записей ? Последний раз редактировалось Illusiony; 13.02.2016 в 23:07. |
|
13.02.2016, 23:04 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
13.02.2016, 23:18 | #5 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
А зачем тут база? через файл можно же решить, без всяких ненужных нагрузок.
|
13.02.2016, 23:44 | #6 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
|
13.02.2016, 23:45 | #7 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
И что? что мешает использовать файлы?
|
13.02.2016, 23:46 | #8 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
|
|
14.02.2016, 00:13 | #9 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Потому что это не одна таблица + это в оперативке что быстрее+ таких таблиц и не только таких может быть сотни+ это нужно как то организовывать если в файлах( а этого я никогда не делал) + нужно просматривать данные таблиц, что удобно в PHPMyAdmin/
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проектирование логики работы ПО | Человек_Борща | Софт | 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 |