|
|
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Задача создать чат между юзерами. My SQL. Создаю 2 таблицы messages , users . users : Список юзеров messages : Сообщения между юзерами. Выходит что таблица messages в случае большой нагрузки будет ОГРОМНОЙ (все сообщения между юзерами будут в ней) Я чувствую что в структуре ошибка! Может есть решение, как правильней организовать структуру базы данных для этой задачи (чат между юзерами). Не создавать же новую таблицу сообщений для каждого нового юзера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 14:22:45 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
По ключу привязывать все данные между таблицами. Включая ID юзеров и их сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 14:29:57 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Я согласен, если юзеров 1000 (или больше) и все активные, на таблицу messages будет неимоверная нагрузка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 14:33:09 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Клиенты чата обычно хранят историю переписки локально, так что на таблицу messages нагрузка будет исключительно write-only. Если каждый из тысячи пользователей будет посылать одно сообщение в секунду (что, с учётом скорости набора на клавиатуре означает сообщение из одного слова), то в таблицу будет идти вставка на скорости 1000 записей в секунду. "Неимоверной" такая нагрузка может называться только в случае если сервер крутится на какой-нибудь мобиле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 16:24:32 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКлиенты чата обычно хранят историю переписки локально Если не трудно в общих чертах как это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 17:10:43 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDD, Ничего не надо делать, структура нормальная. Если таблица будет большой, то тут ничего не сделаешь, и ничего плохого в этом тоже нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 17:20:08 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZivFantasyDD, Ничего не надо делать, структура нормальная. Если таблица будет большой, то тут ничего не сделаешь, и ничего плохого в этом тоже нет. Просто у меня была подобная ситуация только с Firebird шли транзакции в одну (Все было в ней) таблицу с ~50 клиентов. Таблица за 2 дня раздувалась до пол гигобайта и начинала жутко тормозить. Я понимаю не оптимизировано. НО все равно страшно. Может для каждого юзера папка и историю хранить там в файле. В xml, JSON, или что-то подобное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 17:29:28 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Очень хотелось бы услышать мнение. Если основную таблицу юзеров хранить в MySQL базе и для каждого юзера создавать папку в ней хранить переписку в Sqlite файле "sqlite_open()" На сколько это безопасно и на что ляжет нагрузка на сервере. Правильное ли решение на ваш взгляд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 18:20:11 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDMasterZivFantasyDD, Ничего не надо делать, структура нормальная. Если таблица будет большой, то тут ничего не сделаешь, и ничего плохого в этом тоже нет. Просто у меня была подобная ситуация только с Firebird шли транзакции в одну (Все было в ней) таблицу с ~50 клиентов. Таблица за 2 дня раздувалась до пол гигобайта и начинала жутко тормозить. Я понимаю не оптимизировано. НО все равно страшно. Может для каждого юзера папка и историю хранить там в файле. В xml, JSON, или что-то подобное. Таблицы меряют в количестве записей. Сколько записей у тебя было в старой и предполагается в новой бд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 19:36:08 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDОчень хотелось бы услышать мнение. Если основную таблицу юзеров хранить в MySQL базе и для каждого юзера создавать папку в ней хранить переписку в Sqlite файле "sqlite_open()" На сколько это безопасно и на что ляжет нагрузка на сервере. Правильное ли решение на ваш взгляд? Идиотское. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 19:36:56 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDЕсли основную таблицу юзеров хранить в MySQL базе и для каждого юзера создавать папку в ней хранить переписку в Sqlite файле "sqlite_open()"А какая связь между MySQL и Sqlite ? Зачем использовать две СУБД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 19:40:41 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZivFantasyDDОчень хотелось бы услышать мнение. Если основную таблицу юзеров хранить в MySQL базе и для каждого юзера создавать папку в ней хранить переписку в Sqlite файле "sqlite_open()" На сколько это безопасно и на что ляжет нагрузка на сервере. Правильное ли решение на ваш взгляд? Идиотское. Обоснуйте ответ. Мое решение имеет основание. 1) В таком решении оптимизация не нужна. (дефрагментация.... базы ) 2) Выдержит практически любое количество юзеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 19:43:33 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDMasterZivпропущено... Идиотское. Обоснуйте ответ. Мое решение имеет основание. 1) В таком решении оптимизация не нужна. (дефрагментация.... базы ) 2) Выдержит практически любые количество юзеров. Я тебе задал вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 19:45:17 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZiv, А какая связь между MySQL и Sqlite ? Зачем использовать две СУБД ? Я не очень разбираюсь в том что происходит по капотом у MySQL но постоянные транзакции к одной таблице я думаю будут сильно фрагментировать файл таблицы. Если создавать для каждого юзера свою таблицу. может стработать ограничение на юниксе (~ 11 000 одновременно открытых файлов) А так по любому персональные файлы фото... будут хранится в одноименной папке юзера, почему бы не сохранить там диалоги. Файл гарантировано не будет фрагментирован. Появляется возможность легко удалить юзера. И в общих чертах все выглядит понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 19:59:23 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Я тебе задал вопросы. Я ответил ели одна база то я буду вносить изменения в (большой возможно и 1G файл) А если две базы то я вношу за сессию изменения в несколько маленьких (думаю до 1М) В чем глупость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 20:22:51 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDD, Сообщи размеры таблиц, бывший и предполагаемый. В количестве записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 20:57:54 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZivFantasyDD, Сообщи размеры таблиц, бывший и предполагаемый. В количестве записей. В лучшем стечении обстоятельств (не нужно исключать что повезет) mamba.ru Аудитория проекта превысила 9 500 000 человек, более 60 000 пользователей единовременно находится онлайн ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2014, 21:05:30 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDD, Я спрашивал про размеры таблиц, а не кол-во пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 00:12:33 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDЯ не очень разбираюсь в том что происходит по капотом у MySQL но постоянные транзакции к одной таблице я думаю будут сильно фрагментировать файл таблицы. Если ты не очень разбираешься, то может не нужно фантазировать на тему "как будет лучше работать" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 00:15:00 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZiv Может не стоит фантазировать на тему как мне дать замечание и терять зря свое время на бесполезный фулд. А если есть свое мнение высказаться конкретно по теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 12:35:09 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDМожет не стоит фантазировать на темуВам именно это и посоветовали. FantasyDDвысказаться конкретно по теметак ответьте уже на его вопрос, неоднократно заданный, кстати:MasterZivЯ спрашивал про размеры таблиц, а не кол-во пользователей MasterZivТаблицы меряют в количестве записей. Сколько записей у тебя было в старой и предполагается в новой бд? PS. И с чего вы взяли, что склайт-базёнки не будут фрагментироваться, если уж начать бредить в этом направлении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 12:52:27 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDMasterZivпропущено... Идиотское. Обоснуйте ответ. Мое решение имеет основание. 1) В таком решении оптимизация не нужна. (дефрагментация.... базы ) 2) Выдержит практически любое количество юзеров. Обосновываю. Берём два утверждения. FantasyDDюзеров 1000 (или больше) и все активные FantasyDDдля каждого юзера создавать папку в ней хранить переписку в Sqlite файле Итог - несчастный SQLite жуёт 1к несвязанных баз, ему катастрофически нехватает ресурсов (в первую очередь памяти), хост неимоверно свопит, чат не отвечает, юзеры в тыщу глоток портят карму (censored) "архитектора"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 13:09:01 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDMasterZiv Может не стоит фантазировать на тему как мне дать замечание и терять зря свое время на бесполезный фулд. А если есть свое мнение высказаться конкретно по теме. Феерично.... Не, ну хотел помочь человеку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 13:13:21 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZiv С удовольствием выслушал бы ваше мнение. (Мнение профессионала) Но не то что я зря теряю время и что мне не надо делать то что я не умею или не знаю. Какое решение вы предлагаете? В чем будут проблемы в той структуре что я предложил (2 базы). Где ждать подводные камни в этом решении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 13:46:21 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
И с чего вы взяли, что склайт-базёнки не будут фрагментироваться, если уж начать бредить в этом направлении? В одном фале последовательно сложить 500 текстовых сообщений, не удаляя нечего. Где фрагментация? В чем бред? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 14:42:34 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDВ одном фале последовательно сложить 500 текстовых сообщений, не удаляя нечего. Где фрагментация? В чем бред?Фрагментация будет ОБЯЗАТЕЛЬНО. Например, почитайте, что такое кластерный индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 15:21:56 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDD, Давай вернёмся к началу. авторЗадача создать чат между юзерами. My SQL. Создаю 2 таблицы messages, users. users : Список юзеров messages : Сообщения между юзерами. Сколько записей предполагается хранить в таблицах users, messages ? Примерно, важна оценка с точностью до порядка величины. авторВыходит что таблица messages в случае большой нагрузки будет ОГРОМНОЙ (все сообщения между юзерами будут в ней) Как ты думаешь, какие операции в твоей БД будут затрагивать ВСЕ записи в таблице messages ? Попробуй составить список таких операций. Или список вообще всех операций, и пометь в нём те операции, которые будут обрабатывать сразу все сообщения. авторНе создавать же новую таблицу сообщений для каждого нового юзера. ... Если основную таблицу юзеров хранить в MySQL базе и для каждого юзера создавать папку в ней хранить переписку в Sqlite файле "sqlite_open()" На сколько это безопасно и на что ляжет нагрузка на сервере. Правильное ли решение на ваш взгляд? Для задачи "Чат" типична задача "вывести все сообщения между двумя или более пользователями" (если нет -- напиши, что тебе эта задача не нужна). Расскажи, как ты представляешь себе решение этой задачи (можешь написать запрос для неё), если у тебя сообщения разных пользователей лежат в разных таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 16:37:12 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
MasterZiv, 1) users записей до 100 000 структура простая индекс ID, имя, почта, (может еще пару полей) 2) Удалить пользователя со всеми диалогами, править диалоги, удалять переписку, править переписку. (Возможно будут еще задачи) 3) Задача чат между юзерами. Вы пишите ко мне, ID1 обратился к ID2 у ID2 в файл сохраняется переписка в моей папке (В папке ID2 файл my_messages.db). Вы хотите посмотреть нашу переписку. Переписку с кем? Oбращаемся ко мне в папку (D2 файл my_messages.db) если есть продолжаем, нету делаем первую запись. Я удалил переписку, обращаетесь, нет переписки, начинаем снова. Просто и красиво, на мой взгляд, и нагрузка любая. А ваше предложение, как организовать. Или в чем может быть подвох? "Фрагментация будет ОБЯЗАТЕЛЬНО. Например, почитайте, что такое кластерный индекс." По любому тогда будет фрагментация(с любой структурой), юзеры будут менять свои фото и аватары, добавлять фото... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 17:23:26 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDD, Вы производите впечатление трудолюбивого, одержимого жаждой деятельности, творческого человека, наделенного пытливым умом. К сожалению, эти замечательные качества не могут компенсировать отсутствие опыта и практических знаний. Ну ничего, вы просто поэкспериментируйте, попробуйте то, попробуйте это ... Поделитесь потом как-нибудь своим опытом ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 17:30:53 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Dubolom, Спасибо. У меня был опыт только под win и Firebird, печатались билеты, набранные несколькими операторами, все запихал в две таблицы, структура получилась сложной (Приведу пример = приход, разход, остаток. sql select был такой ОСТАТОК ПРЕДЫДУЩЕЙ ЗАПИСИ СКЛАДЫВАЕТСЯ С ПРИХОДОМ СЛЕДУЮЩЕЙ ВЫЧИТАЕТСЯ РАСХОД И ПИШЕТСЯ ОСТАТОК НАСТОЯЩЕЙ :) вписывал только приход и расход остаток сам рассчитывался + связные с этим таблицы ), файл базы данных работал 2 дня максимум, раздувался до огромных размеров. После этого опыта понимаю что нужно основательно подойти к структуре и не менять лошадей на переправе. Обязательно поделюсь своим опытом в этом проекте, если будет кому интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 18:02:07 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDпечатались билеты, набранные несколькими операторами, все запихал в две таблицы, структура получилась сложнойПотому и получилась фигня, что задача решалась лихим наскоком, без анализа предметной области. А сделай как положено, начав с карандаша и бумаги - таблиц было бы больше, но структура была бы простой, понятной и быстро работающей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 18:57:53 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDDDubolom, Спасибо. У меня был опыт только под win и Firebird, печатались билеты, набранные несколькими операторами, все запихал в две таблицы, структура получилась сложной (Приведу пример = приход, разход, остаток. sql select был такой ОСТАТОК ПРЕДЫДУЩЕЙ ЗАПИСИ СКЛАДЫВАЕТСЯ С ПРИХОДОМ СЛЕДУЮЩЕЙ ВЫЧИТАЕТСЯ РАСХОД И ПИШЕТСЯ ОСТАТОК НАСТОЯЩЕЙ :) вписывал только приход и расход остаток сам рассчитывался + связные с этим таблицы ), файл базы данных работал 2 дня максимум, раздувался до огромных размеров. После этого опыта понимаю что нужно основательно подойти к структуре и не менять лошадей на переправе. Обязательно поделюсь своим опытом в этом проекте, если будет кому интересно. Э... тут видимо имело значение то, какая именно СУБД это была... Firebird -- он такой, он любит ... "раздуваться". Я думаю, что этот конкретно твой опыт лучше всего забыть, как страшный сон, и не думать о нём более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 20:44:12 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Я ещё раз призываю тебя сконцентрироваться на ответах на мои вопросы... FantasyDDMasterZiv, MasterZiv Сколько записей предполагается хранить в таблицах users, messages ? 1) users записей до 100 000 структура простая индекс ID, имя, почта, (может еще пару полей) Код: plaintext MasterZiv Как ты думаешь, какие операции в твоей БД будут затрагивать ВСЕ записи в таблице messages ? Попробуй составить список таких операций. 2) Удалить пользователя со всеми диалогами, править диалоги, удалять переписку, править переписку. (Возможно будут еще задачи) MasterZiv Расскажи, как ты представляешь себе решение этой задачи (можешь написать запрос для неё) 3) Задача чат между юзерами. Вы пишите ко мне, ID1 обратился к ID2 у ID2 в файл сохраняется переписка в моей папке (В папке ID2 файл my_messages.db). Вы хотите посмотреть нашу переписку. Переписку с кем? Oбращаемся ко мне в папку (D2 файл my_messages.db) если есть продолжаем, нету делаем первую запись. Я удалил переписку, обращаетесь, нет переписки, начинаем снова. А ваше предложение, как организовать. Или в чем может быть подвох? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 20:51:11 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, нажал кнопку раньше... Подвох в том, когда ты попытаешься написать запрос, который тебе бы выводил нужные данные для чата двух пользователей. Он будет весьма витиеватым, если ты его вообще напишешь. Ещё что ты никак не можешь понять, что производительность запросов почти никак не зависит от объема данных в таблице, при условии, что запрос использует нужные индексы. Т.е. в БД возможны такие случаи: таблица маленькая, индексы не используются -- всё нормально таблица маленькая, индексы используются -- всё нормально таблица большая, индексы для запроса не используются -- запрос просто не будет работать (размер таблицы от 5-10 тыщ записей уже), и тебе придётся переделать запрос так, чтобы он использовал индексы. таблица большая, индексы для запроса используются -- производительность запроса -- O(log N), N -- размер таблицы в кол-ве записей. Как можно догадаться, будет N равно 10 тысяч или миллиард -- разница небольшая. Так что до миллиарда сообщений ты можешь быть относительно спокоен -- всё будет летать. Ну, хорошо, сделаем скидку на то, что это mySQL -- до десятков миллионов сообщений (на 2 порядка уменьшил). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 20:59:54 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
Всё же не дописал... ну и с учётом всего вышесказанного, напрашивается простой вывод -- разбивать таблицу на части по вертикали просто нет смысла, поскольку и так оно будет работать. Хочу также заметить, что обычно разбивают на 10-100 частей, что в принципе особого прироста скорости дать не должно. В твоём случае это было бы 100000 раз, в 100000 раз таблицы были бы меньше. Это наоборот, существенное улучшение. Но оно не нужно. НО! если всё же ты захочешь разбить... В MySQL (как и в некоторых других СУБД) теперь есть table partitioning, таблицу физически MySQL может тебе разбивать на части, а логически это будет одна таблица, и почти все действия по организации сбора информации из многих таблиц тебе не придётся делать руками. Всё же лучше чем "палка и верёвка" из скрещения MySQL и SQLLite. Но я не советую пока использовать партицирование, это можно будет сделать потом, когда объёмы данных реально дойдут до больших чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 21:06:27 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
firebird для меня правда страшный сон! Я опишу индексные поля таблицы users: ID - Номер юзера (он уникальный) ID_NAME - Имя юзера. Остальные поля не индексируемые Таблица mesages: ID_MESAGE - Автоинкрементный для уникальности записи и сохранения порядка сообщений ID_FROM - От кого сообщение (users:ID - Номер юзера) ID_TO - Кому сообщение (users:ID - Номер юзера) MESAGE - Сообщение (не индексируется, слишком большое, но нужное) Остальные поля не индексирую(Время,тип....) в php оберну в клас обмен сообщениями между юзерами, в таком случае легко будет реализовать и структуру с одной базой и в связке (2 базы, хранить сообщения отдельно в паке юзера) нужно будет просто сменить класс. Спасибо всем за участие и советы, все в общих чертах обрисовалось с ваших советов! Я в этой ветке в будущем опишу что и как получилось, думаю будет интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 02:55:34 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
дополнительно ++++ MasterZiv я не знал про Секционирование Я дополнительной базой делал Секционирование По списку значений (По первому впечатлению от описания Секционирования ) Страх от Firebird у меня остался, думал что все базы хромые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 03:36:35 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
FantasyDD, А еще знаете, подумайте про отдельную таблицу, в которой будет храниться история сообщений. И можно сделать так, чтобы ночью специальный job переносил сообщения, старше N дней в эту архивную таблицу. Таким образом, содержимое вашей основной рабочей таблицы будет частично очищаться от старых сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 08:28:22 |
|
||
|
My SQL нормальная форма
|
|||
|---|---|---|---|
|
#18+
AHAPXuCTподумайте про отдельную таблицу, в которой будет храниться история сообщений. И можно сделать так, чтобы ночью специальный job переносил сообщения, старше N дней в эту архивную таблицу. Таким образом, содержимое вашей основной рабочей таблицы будет частично очищаться от старых сообщений. Партиционирование по дате сделает ровно то же самое, только более естественно и без нагрузки на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 08:37:54 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1835206]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 348ms |

| 0 / 0 |
