Снижение нагрузки. Разбиение одной большой таблицы на маленькие

В смысле... удаляются автоматом? Вот я пользователь-дурак удаляю сущность контрагент, а мне автоматом удаляются все проведенные документы? По моему эта ситуации гораздо более редкая, чем запрет на удаление.
 
Автор оригинала: whirlwind
В смысле... удаляются автоматом? Вот я пользователь-дурак удаляю сущность контрагент, а мне автоматом удаляются все проведенные документы? По моему эта ситуации гораздо более редкая, чем запрет на удаление.
В "обычном" вебе таки нет. Удалили группу, удалились сообщения. Удалили товар, удалились его фотографии. А контрагентов вообще по идее удалять нельзя, а то смысл документов теряется.

Что-то мы от темы отклонились :)
 
Кстати, возвращаясь к теме топика, "разбиение одной большой таблицы на маленькие", которое тут приводится, это, похоже, эдакий Partitioning по-детски, на таблицах по 400Мб. Смех!
 
А если не отключить, то ошибки полезут, из-за невозможности удалить то, что уже удалено самой базкой.
удалять ничего не нужно, нужно ставить флаг deleted
тогда вся целостность сохраниться.
 
Ну на самом деле всё это спорно на счет удаления. Иногда можно и удалять(например если есть полноценный change log для таблиц).. иногда не надо. Но вот как могут полезть ошибки если выполняется запрос на удаление строки которой нет - мне не понятно. Это надо вместо запроса "DELETE.... WHERE foreign_key_id = X" что-то такое придумать, чтобы ошибки полезли. И это всё для того, чтобы сделать аналог внешних ключей с которым "не страшно". А с родными страшно... мда. Ещё наверное перед этим и транзакцию запускают а потом коммитят (видел такое реально. Вся база была в таблицах MyISAM)
 
Автор оригинала: Mols
Ещё наверное перед этим и транзакцию запускают а потом коммитят (видел такое реально. Вся база была в таблицах MyISAM)
Вообще-то MyISAM не поддерживает транзакции.

-~{}~ 08.09.09 13:03:

Автор оригинала: Alexandre
удалять ничего не нужно, нужно ставить флаг deleted
тогда вся целостность сохраниться.
Так 1С делает, кстати. Физическое удаление осуществляется отдельной обработкой.
 
Автор оригинала: FractalizeR
Вообще-то MyISAM не поддерживает транзакции.
эмм.... ну я потому и написал, что не поддерживает, вроде понятно же... Просто не все, кто делает "самописные не страшные" аналоги внешним ключам это знают.
А для сохранения этой самой целостности "применяют транзакции" для "безопасных" таблиц MyISAM.
Говорю же.. сам видел такое в реально работающем проекте. Формируется список запросов к таблицам - и они выполняются последовательно. Перед началом - эти гении стартуют транзакцию, по завершению - коммитят. И это всё на MyISAM
 
(select * from product where id = 1) UNION ALL (select * from product where id = 2) order by id;
при некоторых селектах таблицы блокируются, теперь представим что запрос более сложный, с 3-4 join и еще union в придачу. Скажем имеем 10 таблиц по 400 мегов, оказывается что для того чтобы вытянуть 20-30 строк с лимитом, быстрее будет работать при обработке 2х таблиц и соответвенно 800 магами данных, чем с 4гб.
юниоры с критикой бросятся что неудобно, и мол есть кеширование, индексирование, штатные методы которые всем нравятся... но если бы оно нормально и быстро работало, мы бы никогда не увидели мемкешед и ему подобные платформы
не стесняемся и делаем новый велосипед, он возможно такой же как те что в магазине, носкил у девелопера качает... ;)

зы. в оффтоп ушли, изначально вопрос стоял - а что быстрее работает MyISAM или innoDB, и может ли текущая структура базы снижать нагрузку.

топикстартер, более конкретные данные бы =) смута зреет...
 
юниоры с критикой бросятся что неудобно, и мол есть кеширование, индексирование, штатные методы которые всем нравятся... но если бы оно нормально и быстро работало, мы бы никогда не увидели мемкешед и ему подобные платформы
не стесняемся и дела
а можно по подробнее про memcached и ему подобные платформы???
 
Alexandre
По моему он просто провоцирует ... типо Кащенизм)))
 
Alexandre, хорош флудить. ТС - это наш Санёк .-)
 
Автор оригинала: Alexandre
а можно по подробнее про memcached и ему подобные платформы???
Да, мне тоже интересно. Т.е. memcached, по мнению автора, придумали потому, что все остальное работает... плохо?!
 
Т.е. memcached, по мнению автора, придумали потому, что все остальное работает... плохо?!
надо научиться отделять: мухи отдельно, котлеты отдельно...
РМБД - служат для хранения данных основанных на связях (relations)

memcached - это хранение key-value данных в оперативной памяти, и предназначается оно вовсе не для долгосрочного хранения данных

а вот про подобные ему платформы было бы интересно услышать.
 
Автор оригинала: Sawa
при некоторых селектах таблицы блокируются, теперь представим что запрос более сложный, с 3-4 join и еще union в придачу. Скажем имеем 10 таблиц по 400 мегов, оказывается что для того чтобы вытянуть 20-30 строк с лимитом, быстрее будет работать при обработке 2х таблиц и соответвенно 800 магами данных, чем с 4гб.
Дай структуру базы и запрос. Юниоры хотят попробовать.
Автор оригинала: Sawa мемкешед и ему подобные платформы
Ты все таки про кэширование или про key-value?
Автор оригинала: Sawa
зы. в оффтоп ушли, изначально вопрос стоял - а что быстрее работает MyISAM или innoDB, и может ли текущая структура базы снижать нагрузку.
Так мы вроде бы и сейчас про это, не?

-~{}~ 09.09.09 10:53:

Автор оригинала: Alexandre
а вот про подобные ему платформы было бы интересно услышать.
http://bjclark.me/2009/08/04/nosql-if-only-it-was-that-easy/
 
Автор оригинала: Alexandre
надо научиться отделять: мухи отдельно, котлеты отдельно...
РМБД - служат для хранения данных основанных на связях (relations)

memcached - это хранение key-value данных в оперативной памяти, и предназначается оно вовсе не для долгосрочного хранения данных

а вот про подобные ему платформы было бы интересно услышать.
про мемкеш неправда, я знаю соцсети, где хранятся в оперативке на распределенных серверах около 800 гигабайт мемкеша
 
Автор оригинала: pilot911
про мемкеш неправда, я знаю соцсети, где хранятся в оперативке на распределенных серверах около 800 гигабайт мемкеша
Что неправда? Что он не гарантирует сохранность данных?
 
Александр сказал "и предназначается оно вовсе не для долгосрочного хранения данных"


вопрос в долгосрочности, а не в надежности
 
pilot911
Как можно гарантировать долгосрочность хранения данных, если нет сохранности? Хватит к формулировкам придираться. Разговор не об этом.
 
про мемкеш неправда, я знаю соцсети, где хранятся в оперативке на распределенных серверах около 800 гигабайт мемкеша
я тоже знаю, в Контакте ;)
только там хранится оперативная информация...а не долговременная ...

если хотим хранить долговременную, надо использовать memcachedb...

про Redis надо знать, что PHP экстеншен написан удивительно криво. да и его использование очень специфично, можно использовать пока объем данных вмещается в память, если нет - то начинают бить тормоза. Как врочем и sedna

Что неправда? Что он не гарантирует сохранность данных?
просто pilot911 не в теме

вопрос в долгосрочности, а не в надежности
вопрос в скорости доступа прежде всего...

в соц сети потерять сессию или говно-сообщение - не беда...

-~{}~ 09.09.09 13:27:

http://bjclark.me/2009/08/04/nosql-if-only-it-was-that-easy/
эту ссылку хотелось бы увидеть от того, кому был задан вопрос...
 
Сверху