Zzepish
28.06.2016 - 15:24
S.Chushkin
Цитата |
Да, быстрее. Только, утверждение требует уточнения: в каких случаях и насколько. Вы можете привести данные сравнительных тестов? |
Эх, была у меня таблица на 250к+ записей. На ней все тестил. Данных не помню(
sg.com
28.06.2016 - 15:39
twin спасибо статья чюток помогла:
Цитата |
Различие в том, что MyISAM для каждой таблицы создает свой файл, InnoDB по умолчанию все хранит в общем. |
то есть для InnoDB разницы нет в одной таблице или в нескольких хранить (по умолчанию).
правда немного задумался про MyISAM, но вот это наверное решающим станет:
Цитата |
Резюмируя - InnoDB приоритетнее там, где важна целостность данных. При использовании транзакций и внешних ключей база данных становится более монолитной, исчезает опасность фантомных записей или прерванных операций. А целостность данных важна везде, где есть модификация. |
в общем, основой разделения по таблицам (немного разделения все же будет ) вижу только то, если структура хранимой информации будет различна (количество и название полей таблицы то есть) для отдельных групп.
с архитектурой определился
Гость_glock18
28.06.2016 - 15:49
В то время, когда я использовал MySQL, MyISAM гипотетически был хорош для таблиц-справочников, поскольку когда записей в таблицу делается мало, блокировать ему тоже ничего не приходится, и в таких условиях у него выборка была быстрее, чем у Innodb. Мб Innodb ускорился версии с 6й, я не знаю, но знаю, что MyISAM уже давно на свалку истории отправить хотели разрабы, а вот Innodb с момента его появления оптимизировали постоянно.
Проблема в том, что обычно этот гипотетический случай остается таковым, поскольку такую таблицу даже джойнить больше не получится ни с чем, и все данные дергать отдельными запросами оттуда. Вот и встает вопрос, а стоит ли этот маргинальный выигрыш в скорости такого геморроя.
PS: помимо пробела с целостностью, MyISAM очень плох для любых других случаев (скорее даже, в первую очередь из-за этого, а уже потом целостность) из-за table-lock'а. insert'ы и join'ы на MyISAM могут убить все надежды на скорость
sg.com
28.06.2016 - 16:27
"что бы не пострадала производительность других таблиц используют разбиение таблиц на отдельные файлы в InnoDB" - статья Вестника Кгуста (Издательство: Кыргызский государственный университет строительства, транспорта и архитектуры им. Н.Исанова (Бишкек) , КАРИМБАЕВ Т.Т., МАМБЕТАЛИЕВА А.М. )
, не, ну правильно же пишут.
Цитата (Гость_glock18 @ 28.06.2016 - 11:49) |
поскольку такую таблицу даже джойнить больше не получится ни с чем, и все данные дергать отдельными запросами оттуда |
Можно с этого места поподробнее? Почему не получится?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Гость_glock18
28.06.2016 - 17:46
Цитата (twin @ 28.06.2016 - 17:39) |
Цитата (Гость_glock18 @ 28.06.2016 - 11:49) | поскольку такую таблицу даже джойнить больше не получится ни с чем, и все данные дергать отдельными запросами оттуда |
Можно с этого места поподробнее? Почему не получится?
|
Насколько я помню, таблицы на разных энжинах нельзя джойнить друг с другом
Могу ошибаться, конечно, я помню, что меня в своё время мучило то, что внешними ключами эту таблицу ни с чем не соединить, но, кажется, что джойнить ее с innodb таблицами не получалось, и ошибка вроде бы характерная была
Цитата |
What jumps out immediately at me is MyISAM.
ASPECT #1 : The JOIN itself
Whenever there are joins involving MyISAM and InnoDB, InnoDB tables will end up having table-level lock behavior instead of row-level locking because of MyISAM's involvement in the query and MVCC cannot be applied to the MyISAM data. MVCC cannot even be applied to InnoDB in some instances. |
ликвидирует одно из основных преимуществ innodb, что с небольшой натяжкой можно считать достаточной причиной отказаться от джойнов MyISAM с Innodb
Ты наверное путаешь с транзакциями. Да, то геммор, если вдруг понадобится включить такую таблицу в транзакцию. С джоинами там все нормально.
С InnoDB есть один неприятный момент - deadlock. Так что на "горячих" таблицах MyISSAM пока предпочтительнее. Но все не стоит на месте, может и это поправят.
А в плане производительности, это не тот случай, когда можно пренебречь безопасностью данных в угоду скорости.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sg.com
28.06.2016 - 18:54
Прочитав с десяток статей, все таки аргументы оставить разбивку таблиц на несколько (в разрезе тематик) убедительнее, - если информации станет много, - перезалить БД, так, что бы для каждой таблицы сформировался свой отдельный файл. Но однозначно - это InnoDB.
S.Chushkin
28.06.2016 - 20:30
Цитата (sg.com @ 28.06.2016 - 18:54) |
Прочитав с десяток статей, все таки аргументы оставить разбивку таблиц на несколько (в разрезе тематик) убедительнее, - если информации станет много, - перезалить БД, так, что бы для каждой таблицы сформировался свой отдельный файл. Но однозначно - это InnoDB. |
Похоже Вы запутались. Или заблудились.
Цитата (sg.com @ 28.06.2016 - 18:54) |
Когда человек наверняка не знает, то такой вот совет (без какой либо конкретики) неясно как воспринимать. Например какие проблемы? (хотя бы одну две) ...и готов вроде начать с классики... но что такое классика?
|
А искать инфу Вас не учили? Научитесь, полезно. И я и другие профи не раз писали об этом, или на этом сайте или в соседних, - повторять вряд-ли кто-то будет специально для Вас.
Хотя ... хозяин-барин. "Я прокукарекал, а там хош рассветай хош не рассветай" (с)
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
28.06.2016 - 20:33
Цитата (Zzepish @ 28.06.2016 - 15:24) |
Эх, была у меня таблица на 250к+ записей. На ней все тестил. Данных не помню( |
Так повтори, - в чём проблема?
Только пошире: одна-две-три таблицы, простые сложные выборки, добавление/изменение/удаление записей и т.д. и т.п.
Разбей тесты на группы и выложи таблицу результатов для этих сравнительных тестов в идентичных условиях для разных движков. Вот это будет
убедительный для всех, особенно для начинающих, аргумент за или против.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Zzepish
28.06.2016 - 20:45
S.Chushkin
Хм. Ты прав.
sg.com
28.06.2016 - 20:46
Цитата (S.Chushkin @ 28.06.2016 - 20:30) |
А искать инфу Вас не учили? |
в том и дело, что искал и из того что нашел, все об одном, что разделение по таблицам (файлам) разгружает нагрузку на отдельную таблицу. Другого не встретил, то есть Ваша позиция абсолютно неясна для меня. Мало того, не разделение таблиц по файлам - пишут "это по старинке".
Разговор идет о разделении одной таблицы на пять аналогичных с небольшими различиями между собой (в пределах +/- один столбец или тип хранимой информации в таком столбце).
Почему такое решение плохо? Кроме Вашего "плохо" больше аргументов против пока нет
S.Chushkin
28.06.2016 - 20:50
Цитата (sg.com @ 28.06.2016 - 20:46) |
разделение по таблицам (файлам) разгружает нагрузку на отдельную таблицу. ... не разделение таблиц по файлам - пишут "это по старинке". |
Бред. Не читайте такие статьи.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.