|
|
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Есть таблица, записей 7кк Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Запрос COUNT(*) без партиционирования выполняется 0.7 секунд, с 25 партициями = 10 секунд. Вопрос собстна в том, почему так долго и можно ли что покрутить, чтобы хоть как-то улучшить время? PS^ По сути проблема со всеми запросами которые аггрегируются, не то чтобы они совсем плохо работает, но вот где данных надо посчитать мало, выполняются очень быстро, но если много, то все, может какого буфера не хватает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:08:22 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Гмм, причем на линуксовом сервере версии 5.5.34 эти 10 секунд. На другом виндовом 5.6.14 за 1.2 секунды выполняется. Правда тут записей меньше (5кк здесь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:16:30 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hettможет какого буфера не хватаетМожет, innodb_buffer_pool_size не хватает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:21:03 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
На серверах стоит 12G на линуксе, на виндовом (где гораздо быстрее работает) - 4G ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:30:45 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Сейчас скачаю на виндовый полную табличку в 7кк и сравню ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:31:11 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Повторное время такое же большое? В плане запроса что-нибудь интересное есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:31:56 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Да повторное примерно такое же, раз по 5-10 запускл, ничего не меняется. SIMPLEfh_user_fileindex(null)IX_user_file_abuse_status1(null)7476871Using index Он похоже просто берет самый маленький индекс Код: sql 1. 2. Вот с виндового: SIMPLEfh_user_fileindex(null)IX_user_file_abuse_status1(null)5202505Using index ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:36:53 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettОн похоже просто берет самый маленький индексПравильно, оно так и должно быть. Попробуйте выполнить OPTIMIZE TABLE для это таблицы? innodb_file_per_table, надеюсь, включена была до создания этой таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:40:26 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Эту таблицу я создал только что, специально для теста и перекинул данные, думаю там нечего оптимизировать на данный момент... innodb_file_per_table включен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:48:14 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
В запросе точно только COUNT(*), без ничего больше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:50:54 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. Да, вот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 14:04:01 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Ну COUNT() это как простейший пример, вообще проблем с любым аггрегирующим запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 14:07:04 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Залил на виндовый 7.5кк записей, запрос на каунт стал выполняться 5 секунд. Сейчас буду пробовать на работу с 10 партишенами (было 25) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 11:18:35 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Чудеса С 10 партишенами время выполнения 7 секунд, с 25 - 5 Если данных чуть меньше (4.5кк), то 1 секунда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 14:06:19 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett, видишь ли, дорогой виртуальный друг, то, как работает запрос немного зависит от того, что это за запрос. Чуть менее чем полностью. Поэтому вопрошать так без полного текста запроса и полного DDL не то что глупо, а попросту бессмысленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 06:06:47 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett Код: sql 1. 2. Да, вот такой запрос бессмысленен и оптимизировать его так же мало смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 06:09:44 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett Код: sql 1. 2. Да, вот и еще. с чего ты взял что такой запрос должен ускоряется после партицирования? он должен наоборот замедляться, в твоем конкретно случае примерно в 25 раз, чуть менее. твои времена примерно такой картине и соответствуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 06:15:59 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
MasterZivон должен наоборот замедляться, в твоем конкретно случае примерно в 25 разПочему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 11:01:06 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
MasterZivHett Код: sql 1. 2. Да, вот и еще. с чего ты взял что такой запрос должен ускоряется после партицирования? он должен наоборот замедляться, в твоем конкретно случае примерно в 25 раз, чуть менее. твои времена примерно такой картине и соответствуют. Почему он должен замедляться в 25 раз? В таком случае можно сказать что любые аггрегирующие запросы будут замедляться в n-раз. Тогда за одно может и поведуете, почему в случае с 10 партишенами скорость еще хуже чем с 25-ю? Чем, в данном случае поможет DDL? автортакой запрос бессмысленен и оптимизировать его так же мало смысла. Как я выше уже писал, стали заметно хуже выполняться все аггрегирующие запросы, проблема в них. автори еще. с чего ты взял что такой запрос должен ускоряется после партицирования? Вообще, теоретически если предположить, он может ускоряться хотя бы за счет того, что запросы к каждому партишену параллелятся (именно такое слово употреблено в официальной документации). Но ладно, но на это я и не рассчитывал, в общем-то, пусть даже медленее, но не в 25 раз же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 11:05:46 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett, потому что запрос вида SELECT COUNT(*) FROM user_file обрабатывает все партиции, а не одну. Их у тебя 25. Будет соотв. в 25 раз больше. Плюс накладуха на сборку общего результата из частных по каждой партиции (думаю, не очень большая). Другое дело, что скан всего в одной таблице и 1/25-ой всего в одной партиции -- тоже разные вещи. Но по крайней мере спуск в дереве таблиц точно в 25 раз будет помножен. В любом случае, не понятоно с чего бы такому запросу ускорится от наличия партицый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 01:59:38 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
MasterZivИх у тебя 25. Будет соотв. в 25 раз больше. А ниче, что партиции в 25 раз меньше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 07:39:41 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettMasterZivИх у тебя 25. Будет соотв. в 25 раз больше. А ниче, что партиции в 25 раз меньше? ты вообще читаешь что я пишу? еще раз, за счет чего по твоему запрос должен вдруг заработать быстрее после разбиения на партиции? кстати, запрос дай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 02:06:10 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Дык я же говорю, я и не ждал ускорения и прекрасно понимал, что будет работать медленнее, но не в 10 раз же. Но вообще, если уж так подумать, то мог бы и быстрее, если бы он каждую партицию считал в другом потоке параллельно. Это я уже выше все писал, вы у меня уже по второму кругу одни и те же вопросы спрашиваете и кто тут читает кого, а кто кого нет, - вопрос еще спорный :) Щас потестил на версии 5.6 под виндой, хоть 10 партиций, хоть 100, время одно, 5 секунд. На убунте в версии 5.5 почему-то 10 партишенов работали медленее чем 25. Запрос Код: sql 1. 2. 3. На продакшене запрос выполнялся раньше за 0.1 секунды, теперь 1.1 секунды. Да и вообще любые группирующие запросы в общем так себя проявили. Тот же Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 18:16:09 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett, А зачем Вам вообще partitions? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 21:11:29 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
miksoftHettОн похоже просто берет самый маленький индексПравильно, оно так и должно быть. Попробуйте выполнить OPTIMIZE TABLE для это таблицы? innodb_file_per_table, надеюсь, включена была до создания этой таблицы? насколько я знаю, надо делать OPTIMIZE PARTITION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 08:47:48 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
список команд для партишенов REORGANIZE PARTITION ANALYZE PARTITION CHECK PARTITION OPTIMIZE PARTITION REBUILD PARTITION REPAIR PARTITION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 08:48:18 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Уже было, оптимизация на InnoDB - это просто пересоздание файла. В данном случае таблица только создана и она ничего не даст... Поправьте если не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 08:58:01 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Aleksandr KuzminskyHett, А зачем Вам вообще partitions? Это уже другой вопрос :) Вообще проблема была в том, что на большой таблице стали "виснуть" INSERT запросы в статусе USER LOCK (хотя никто никаких локов никто не делал и вообще подозреваю что это был какой-то баг) и откуда ноги росли не могли понять, каждый раз спасались упрощением триггера, выкидывали из него какие-то проверки и вуаля, все снова работало какое-то время. После нескольких случаев решили попробовать партишены, в общем-то все теперь работает с полными триггерами. Вот только по производительности вопрос) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 09:00:05 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett, Запусти partition explane select...., покажи результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 13:31:35 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Да он тут по сути просто добавляет информацию о затронутых партишенах, как я понял SIMPLEfh_user_filep0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24index(null)IX_user_file_abuse_status1(null)7913957Using index ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 13:39:36 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettДык я же говорю, я и не ждал ускорения и прекрасно понимал, что будет работать медленнее, но не в 10 раз же. Но вообще, если уж так подумать, то мог бы и быстрее, если бы он каждую партицию считал в другом потоке параллельно. Это я уже выше все писал, вы у меня уже по второму кругу одни и те же вопросы спрашиваете и кто тут читает кого, а кто кого нет, - вопрос еще спорный :) Щас потестил на версии 5.6 под виндой, хоть 10 партиций, хоть 100, время одно, 5 секунд. На убунте в версии 5.5 почему-то 10 партишенов работали медленее чем 25. Запрос Код: sql 1. 2. 3. На продакшене запрос выполнялся раньше за 0.1 секунды, теперь 1.1 секунды. Да и вообще любые группирующие запросы в общем так себя проявили. Тот же Код: sql 1. Первый запрос может выиграть при патрицировании по user_id. Второй -- нет, при любом партицировании. Я ещё раз тебя призываю опубликовать DDL твоей таблицы и реальный запрос, один, с которым "проблемы". Тут у тебя user_id, там у тебя id... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 13:54:30 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Вот запрос написал как есть, только ошибся в имени таблицы, все остальное так же слово в слово (+ алиасы). Проблемы не с ним одним, елки палки, а со всем аггрегирующими запросами. Есть индекс из одного поля user_id, партицирование Код: sql 1. 2. 3. 4. 5. 6. 7. уже писалось в первом запросе. Сейчас случайно обнаружил, что на виндовой тачке, где мускуль 5.6 и работало все чуть быстрее (чем на линнуксе где мускуль 5.5), что innodb_buffer_pool_size совсем маленький, поставил больше, запрос стал выполняться 1.5 секунды (собстна тут и ясно, почему 4кк записей "летали". а 7 стали тупить). Но вот на линуксовой тачке стоит буфер 32 гига сейчас, и запрос как тупил так и тупи, у меня уже складывается подозрение что это проблема мускуля 5.5, sort_buffer тоже ничего не дает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:25:51 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Причем на версии 5.6 хоть 100 партиций, хоть 25, скорость одна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 14:34:41 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettЭто уже другой вопрос :) Вообще проблема была в том, что на большой таблице стали "виснуть" INSERT запросы в статусе USER LOCK (хотя никто никаких локов никто не делал и вообще подозреваю что это был какой-то баг) и откуда ноги росли не могли понять, каждый раз спасались упрощением триггера, выкидывали из него какие-то проверки и вуаля, все снова работало какое-то время. После нескольких случаев решили попробовать партишены, в общем-то все теперь работает с полными триггерами. Вот только по производительности вопрос) Как-то необычно Вы подходите к решению задач. У Вас была проблема с локами, но вместо того, чтобы найти что держит этот лок, который не дает INSERT-у, Вы пробуете решения наугад. Это прямо как в анекдоте про кур и раввина - куры все сдохли, а идей еще было много. :-) Partitions решают очень узкий круг задач, и если Вы четко не видите, что Вам даст разбиение большой таблицы на несколько маленьких, то лучше не стоит разбивать. Очень легко нажить себе новых проблем, на что Вы и наткнулись судя по EXPLAIN. Мой Вам совет - вернитесь к началу, посмотрите, какие будут проблемы. Если опять вылезут блокировки, то соберите SHOW INNODB STATUS и присылайте сюда - будем изучать и делать выводы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 18:56:55 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett, Member Откуда: Бийск, Новосибирск Сообщений: 10554 Вот запрос написал как есть, только ошибся в имени таблицы, все остальное так же слово в слово (+ алиасы). Проблемы не с ним одним, елки палки, а со всем аггрегирующими запросами. мужик, ты пойми, проблем с запросами "в общем" не бывает, они все конкретные, с конкретным запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 19:04:47 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Aleksandr Kuzminsky, смотрели уже 100 спецов, все руками разводят. Просто работало все год, никто ничего не трогал, потом начались проблемы, каждый раз причину найти никто не мог, только нашли способ проблему отложить - упрощали триггер. А триггер в инсере особо ничего не делал, проверял другую табличку селектом и ставил флаг, таких запроса было 3 в триггере. Каждый раз по одному выкидывали и все снова работало. Это был не DEADLOCK а USER LOCK, откуда ему взяться, я же там SELECT FOR UPDATE и т.п. вещи не делал ведь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 20:32:20 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
MasterZivмужик, ты пойми, проблем с запросами "в общем" не бывает, они все конкретные, с конкретным запросом. Ну вот конкретно с SELECT COUNT(*) FROM tablname проблема, прям вот конкретно с ним. Я еще другой конкретный вопрос сюда выкладывал. Я понимаю был бы там запрос очень сложный, который юзал хитрые индексы и т.п., но тут просто негде ошибиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 20:34:04 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettПросто работало все год, никто ничего не трогал, потом начались проблемы, каждый раз причину найти никто не мог, только нашли способ проблему отложить - упрощали триггер. Вот и я о том же. Причину не нашли, зато придумали "решение". Прэлестно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 20:37:20 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Это решение позволило нам кроме всего прочего избавиться от постоянных DELETE запросов, которые фрагментировали таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 20:40:41 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Aleksandr KuzminskyПричину не нашли, зато придумали "решение". Прэлестно :-) Вы, в общем-то тоже сейчас так поступили, не нашли решение данному вопросу, начали искать причины того, что мне это не надо ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 20:58:01 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettВы, в общем-то тоже сейчас так поступили, не нашли решение данному вопросу, начали искать причины того, что мне это не надо ;) Таблица 7 миллионов записей, размер базы тоже небольшой. Я очень сомневаюсь, что Вам нужны partitions. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 21:57:48 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
автораблица 7 миллионов записей, размер базы тоже небольшой. Я очень сомневаюсь, что Вам нужны partitions. авторЭто решение позволило нам кроме всего прочего избавиться от постоянных DELETE запросов, которые фрагментировали таблицу. + проблема стриггерами, которую так и не понял никто. Вообще у меня уже создается впечатление, что это баг, но скомпроментировать его в ручную его не удается. Хотя, если честно, не сильно и пытались. По сабжу, поставили на линух мусколь 5.6 (правда перкону), запросы стали работать адекватно (чуть медленее чем без партишенов, но не существенно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 10:00:40 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Короче судя по всему это проблема какая-то версии 5.5, т.к. в обычном мускуле 5.6 тоже все хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 10:01:23 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hettсоздается впечатление, что это баг, но скомпроментировать его в ручную его не удается. Хотя, если честно, не сильно и пытались. У вас это постоянно происходит. Все темы такие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 12:19:25 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
netwindHettсоздается впечатление, что это баг, но скомпроментировать его в ручную его не удается. Хотя, если честно, не сильно и пытались. У вас это постоянно происходит. Все темы такие. Дык все темы по этому поводу и были ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 12:44:13 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hettnetwindпропущено... У вас это постоянно происходит. Все темы такие. Дык все темы по этому поводу и были Ну так надо же пытаться выделить "баг". Во время этого процесса вы полностью разберетесь как что работает и почти наверняка выяснится, что это и не баг вовсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 17:32:00 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettНу вот конкретно с автор SELECT COUNT(*) FROM tablname проблема, прям вот конкретно с ним. Ну вот и скажи, как этот запрос может убыстриться от наличия партиций на таблице tablname ? Как замедлиться -- я тебе уже объяснил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 01:26:13 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
HettЭто решение позволило нам кроме всего прочего избавиться от постоянных DELETE запросов, которые фрагментировали таблицу. чего делали ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 01:27:00 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
MasterZivHettНу вот конкретно с пропущено... проблема, прям вот конкретно с ним. Ну вот и скажи, как этот запрос может убыстриться от наличия партиций на таблице tablname ? Как замедлиться -- я тебе уже объяснил. Так это он не привел полный запрос. Там еще дополнительные where были, ограничивающие по СЕКЦИЯМ. Проблема ТС в том, что он никогда не пытается собрать полную предварительную информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 01:34:43 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
netwindMasterZivпропущено... Ну вот и скажи, как этот запрос может убыстриться от наличия партиций на таблице tablname ? Как замедлиться -- я тебе уже объяснил. Так это он не привел полный запрос. Там еще дополнительные where были, ограничивающие по СЕКЦИЯМ. Проблема ТС в том, что он никогда не пытается собрать полную предварительную информацию. Ну так и я о том же. Сегодня у него так таблица называется, завтра эдак. Сегодня поле id, завтра user_id. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 01:48:05 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
MasterZivHettНу вот конкретно с пропущено... проблема, прям вот конкретно с ним. Ну вот и скажи, как этот запрос может убыстриться от наличия партиций на таблице tablname ? Как замедлиться -- я тебе уже объяснил. Вы мне третий раз уже этот вопрос задаете. Я 2 раза уже ответил. Думаю третий раз уже не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 11:07:45 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
MasterZivHettЭто решение позволило нам кроме всего прочего избавиться от постоянных DELETE запросов, которые фрагментировали таблицу. чего делали ? https://www.google.ru/search?q=mysql fragmented tables&oq=mysql fragmented tables&aqs=chrome..69i57j0l5.233j0j7&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 11:08:48 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
netwindMasterZivпропущено... Ну вот и скажи, как этот запрос может убыстриться от наличия партиций на таблице tablname ? Как замедлиться -- я тебе уже объяснил. Так это он не привел полный запрос. Там еще дополнительные where были, ограничивающие по СЕКЦИЯМ. Проблема ТС в том, что он никогда не пытается собрать полную предварительную информацию. Откуда вы взяли эту информацию? Из другой темы? Там был совсем другой запрос и таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 11:09:25 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hettnetwindпропущено... Так это он не привел полный запрос. Там еще дополнительные where были, ограничивающие по СЕКЦИЯМ. Проблема ТС в том, что он никогда не пытается собрать полную предварительную информацию. Откуда вы взяли эту информацию? Из другой темы? Там был совсем другой запрос и таблица. домыслил. как-то же он должен был ускорять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 11:33:09 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Я первом же посте написал ддл таблицы, на секции бьются по HASH(id) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 11:44:48 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
Hett, так это означает что партиции вообще никак ничего не ускоряют в первом приближении. Приходится согласиться со всем о чем MasterZiv написал . Какие-то другие эффекты и настройки могли что-то изменить, но с позиции оптимизатора SQL работы меньше не стало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 13:32:30 |
|
||
|
Partitioning again..
|
|||
|---|---|---|---|
|
#18+
netwindHett, так это означает что партиции вообще никак ничего не ускоряют в первом приближении. Приходится согласиться со всем о чем MasterZiv написал . Какие-то другие эффекты и настройки могли что-то изменить, но с позиции оптимизатора SQL работы меньше не стало. Да я понимаю, как уже и говорил, ускорения и не ждал. но 10 кратное замедление (не зависящее от количества партиций) насторожило просто, подумалось может какого буфера не хватает, поэтому на форуме тему и создал. Как показали "опыты", в 5.6 такой проблемы нет, мы решили перейти на продакшене на версию 5.6, и проблема в общем-то отпала. Возможно просто в 5.5 этот момент хуже реализован и пересмотрен в 5.6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 13:46:21 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1835225]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 389ms |

| 0 / 0 |
