Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ограничить количество строк в таблице / 15 сообщений из 15, страница 1 из 1
20.01.2015, 08:44:21
    #38858064
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
Имеется таблица в которую постоянно добавляются новые данные, но нужно сделать так, чтобы в нее добавлялось не более, к примеру, 50 записей, те записи которые самые старые при добавлении новой записи удалялись.
Можно конечно написать кучу проверок и затем по ID или дате удалять старые записи, но это кучу запросов в БД, а именно:
Проверка сколько записей в БД, затем если там 50 и более удаляем и записываем новую. Итого: 3 запроса.

Может быть есть встроенная возможность у MySQL делать подобное? Или же может есть более простой способ. Что-то я ничего не нарыл и ни к чему, по сути, не пришел.

Буду благодарен за любую помощь, друзья!
...
Рейтинг: 0 / 0
20.01.2015, 09:08:51
    #38858080
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
Изначально занести в таблицу необходимое количество записей. Ввести поле штампа времени с автоапдейтом. Вместо добавления/удаления выполнять обновление самой старой записи.
...
Рейтинг: 0 / 0
20.01.2015, 09:38:56
    #38858116
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
Хорошая идея. Спасибо.

Я полагаю, что каких-то встроенных возможностей нет!?
...
Рейтинг: 0 / 0
20.01.2015, 10:16:49
    #38858152
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
можешь использовать хранимую процедуру, и в ней делать хоть 1000 запросов и оргвнизовать практически любой сложности логику
чисто внешне это будет выглядеть как один "Запрос"
...
Рейтинг: 0 / 0
20.01.2015, 10:20:18
    #38858156
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
вадя,

Один запрос из PHP в БД, а само БД будет обращаться к таблице 3 раза, не так ли?
...
Рейтинг: 0 / 0
20.01.2015, 10:27:34
    #38858163
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
zhurchickБД будет обращаться к таблице 3 разаСфига бы именно три? Сколько в процедуре обращений, столько и будет.
...
Рейтинг: 0 / 0
20.01.2015, 10:38:50
    #38858181
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
Akina,

Я о своем случае! Ну так то понятно.
...
Рейтинг: 0 / 0
20.01.2015, 10:46:01
    #38858193
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
ТС изобретает какой-то велосипед. Сначала хотел вот чего 17136633 , а потом, похоже, решил тупо дать каждому ползателю по личной таблице. Ровно с 50 записями. Задачу описывать он явно не хочет, так что давайте просто пожелаем ему удачи в этом нелёгком деле :)
...
Рейтинг: 0 / 0
20.01.2015, 10:48:34
    #38858201
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
ССЗБ? ну тады и правда, удачи ему...
...
Рейтинг: 0 / 0
20.01.2015, 10:53:55
    #38858207
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
tanglir,

Ну нет же) Это совсем две разные задачи.

Ну да ладно, я опишу чего хочу!
Итак, у меня имеется чат, который работает динамически, сообщения не только отправляются динамически, но и подгружаются (shot-polling, в дальнейшем на сокеты посажу). И я хочу, чтобы новые добавленные сообщения подгружались не из общей таблице (где все сообщения чата), а из другой, в которой хранится не более 50 последних сообщений. И вместо того, чтобы потом осуществлять разные проверки и вытягивать новые сообщения из таблице где, может быть, миллион и более записей, скрипт будет работать с таблицей в которой, к примеру, 100-200 записей.
...
Рейтинг: 0 / 0
20.01.2015, 11:45:28
    #38858288
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
zhurchickИтак, у меня имеется чат, который работает динамическиЧто значит "динамически"?
zhurchickИ вместо того, чтобы потом осуществлять разные проверки и вытягивать новые сообщения из таблицеНу и зачем ровно 50 штук там хранить? Оставляйте последние сутки/час/минуту, остальное - в общую таблицу.
zhurchickгде, может быть, миллион и более записейНе волнуйтесь, не будет там миллиона.
...
Рейтинг: 0 / 0
20.01.2015, 11:55:31
    #38858315
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
tanglir,

Динамически - это без перезагрузки страницы.

tanglir Не волнуйтесь, не будет там миллиона.
Ага, если учитывать тот факт, что на старом чате уже более 500 тысяч
...
Рейтинг: 0 / 0
20.01.2015, 11:59:12
    #38858321
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
zhurchickДинамически - это без перезагрузки страницы.это сторона веб
скл-сервер тут вообще ни при чём

и всё-таки, откуда взялось это замечательное условие "50 последних"? не говоря уже о том, что индекс на (юзерид, таймштамп) должен решить эту задачу без танцев с бубномдополнительной таблицей?
...
Рейтинг: 0 / 0
21.01.2015, 21:06:29
    #38860139
NikolayV81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
zhurchicktanglir,

Ну нет же) Это совсем две разные задачи.

Ну да ладно, я опишу чего хочу!
Итак, у меня имеется чат, который работает динамически, сообщения не только отправляются динамически, но и подгружаются (shot-polling, в дальнейшем на сокеты посажу). И я хочу, чтобы новые добавленные сообщения подгружались не из общей таблице (где все сообщения чата), а из другой, в которой хранится не более 50 последних сообщений. И вместо того, чтобы потом осуществлять разные проверки и вытягивать новые сообщения из таблице где, может быть, миллион и более записей, скрипт будет работать с таблицей в которой, к примеру, 100-200 записей.

cron который будет раз в n минут грохать все записи в таблице старше чем n минут, но оставляя не меннее M записей.
...
Рейтинг: 0 / 0
21.01.2015, 22:09:59
    #38860171
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ограничить количество строк в таблице
zhurchickвадя,

Один запрос из PHP в БД, а само БД будет обращаться к таблице 3 раза, не так ли?
а чем тебя пугает обращение к базе в базе(из хранимки к таблицам)?
дисковые операции? сделай таблицу в памяти.
правильно составленные таблицы с правильными индексами - гарантия быстродействия.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ограничить количество строк в таблице / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]