|
|
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
Имеется таблица в которую постоянно добавляются новые данные, но нужно сделать так, чтобы в нее добавлялось не более, к примеру, 50 записей, те записи которые самые старые при добавлении новой записи удалялись. Можно конечно написать кучу проверок и затем по ID или дате удалять старые записи, но это кучу запросов в БД, а именно: Проверка сколько записей в БД, затем если там 50 и более удаляем и записываем новую. Итого: 3 запроса. Может быть есть встроенная возможность у MySQL делать подобное? Или же может есть более простой способ. Что-то я ничего не нарыл и ни к чему, по сути, не пришел. Буду благодарен за любую помощь, друзья! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 08:44:21 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
Изначально занести в таблицу необходимое количество записей. Ввести поле штампа времени с автоапдейтом. Вместо добавления/удаления выполнять обновление самой старой записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 09:08:51 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
Хорошая идея. Спасибо. Я полагаю, что каких-то встроенных возможностей нет!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 09:38:56 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
можешь использовать хранимую процедуру, и в ней делать хоть 1000 запросов и оргвнизовать практически любой сложности логику чисто внешне это будет выглядеть как один "Запрос" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:16:49 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
вадя, Один запрос из PHP в БД, а само БД будет обращаться к таблице 3 раза, не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:20:18 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
zhurchickБД будет обращаться к таблице 3 разаСфига бы именно три? Сколько в процедуре обращений, столько и будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:27:34 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
Akina, Я о своем случае! Ну так то понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:38:50 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
ТС изобретает какой-то велосипед. Сначала хотел вот чего 17136633 , а потом, похоже, решил тупо дать каждому ползателю по личной таблице. Ровно с 50 записями. Задачу описывать он явно не хочет, так что давайте просто пожелаем ему удачи в этом нелёгком деле :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:46:01 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
ССЗБ? ну тады и правда, удачи ему... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:48:34 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
tanglir, Ну нет же) Это совсем две разные задачи. Ну да ладно, я опишу чего хочу! Итак, у меня имеется чат, который работает динамически, сообщения не только отправляются динамически, но и подгружаются (shot-polling, в дальнейшем на сокеты посажу). И я хочу, чтобы новые добавленные сообщения подгружались не из общей таблице (где все сообщения чата), а из другой, в которой хранится не более 50 последних сообщений. И вместо того, чтобы потом осуществлять разные проверки и вытягивать новые сообщения из таблице где, может быть, миллион и более записей, скрипт будет работать с таблицей в которой, к примеру, 100-200 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:53:55 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
zhurchickИтак, у меня имеется чат, который работает динамическиЧто значит "динамически"? zhurchickИ вместо того, чтобы потом осуществлять разные проверки и вытягивать новые сообщения из таблицеНу и зачем ровно 50 штук там хранить? Оставляйте последние сутки/час/минуту, остальное - в общую таблицу. zhurchickгде, может быть, миллион и более записейНе волнуйтесь, не будет там миллиона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 11:45:28 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
tanglir, Динамически - это без перезагрузки страницы. tanglir Не волнуйтесь, не будет там миллиона. Ага, если учитывать тот факт, что на старом чате уже более 500 тысяч ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 11:55:31 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
zhurchickДинамически - это без перезагрузки страницы.это сторона веб скл-сервер тут вообще ни при чём и всё-таки, откуда взялось это замечательное условие "50 последних"? не говоря уже о том, что индекс на (юзерид, таймштамп) должен решить эту задачу без танцев с бубномдополнительной таблицей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 11:59:12 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
zhurchicktanglir, Ну нет же) Это совсем две разные задачи. Ну да ладно, я опишу чего хочу! Итак, у меня имеется чат, который работает динамически, сообщения не только отправляются динамически, но и подгружаются (shot-polling, в дальнейшем на сокеты посажу). И я хочу, чтобы новые добавленные сообщения подгружались не из общей таблице (где все сообщения чата), а из другой, в которой хранится не более 50 последних сообщений. И вместо того, чтобы потом осуществлять разные проверки и вытягивать новые сообщения из таблице где, может быть, миллион и более записей, скрипт будет работать с таблицей в которой, к примеру, 100-200 записей. cron который будет раз в n минут грохать все записи в таблице старше чем n минут, но оставляя не меннее M записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 21:06:29 |
|
||
|
Ограничить количество строк в таблице
|
|||
|---|---|---|---|
|
#18+
zhurchickвадя, Один запрос из PHP в БД, а само БД будет обращаться к таблице 3 раза, не так ли? а чем тебя пугает обращение к базе в базе(из хранимки к таблицам)? дисковые операции? сделай таблицу в памяти. правильно составленные таблицы с правильными индексами - гарантия быстродействия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 22:09:59 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38858181&tid=1833673]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 333ms |

| 0 / 0 |
