Почему запрос выполняется так долго? Почему не используются индексы?
Наверное, все слышали об EXPLAIN в PostgreSQL. Но не так много тех, кто понимает, как его использовать. Сам длительное время не мог найти доступного для понимания учебника (плохо искал?).
Надеюсь, эта статья поможет желающим разобраться с этим замечательным инструментом.
Читать полностью »
Рубрика «оптимизация» - 42
Оптимизация запросов. Основы EXPLAIN в PostgreSQL
2013-11-23 в 5:38, admin, рубрики: highload, postgresql, оптимизация, метки: highload, postgresql, оптимизацияЕщё один способ оптимизации интерфейса Youtube
2013-11-09 в 23:22, admin, рубрики: stylish, userscript, YouTube, интерфейс, интерфейсы, оптимизация, метки: stylish, userscript, youtube, интерфейс, оптимизацияПрочитав свежую статью о Youtube Center, я решил поделиться с читателим своим способом укрощения разжиревшего интерфейса Youtube.
Нестандартное решение одной задачи с ProjectEuler
2013-10-29 в 21:41, admin, рубрики: Excel, fun, optimization, project euler, математика, ненормальное программирование, оптимизация, метки: Excel, fun, optimization, project euler, оптимизацияЗадачки с Project Euler хороши тем, что позволяют развлечься и потренировать мозг на разных уровнях сложности для одной и той же задачи. Самый простенький подход — brute force. Первые два десятка задач на 99% решаются именно таким подходом. После отправки правильного ответа на задачу открывается ветка форума по ней. Любители из десятков стран соревнуются, кто процитирует решение поизощреннее. Более продвинутые используют встроенные возможности языков, на которых пишут решение, но суть одна и та же — перебор или явный с кучей вложенных циклов или неявный через вызов специальных функций. Особенно красиво это выглядит в языках Python или Ruby ( часто в одну-две строчки), помногословнее в Java и C++. Чем дальше, тем натужнее выглядят «силовые» решения, с использованием классов вроде BigInteger. С увеличением номера задачи грубую силу удается успешно применитьвсе реже и все сложнее. Появляется много задач на чистую математику, где нужно решить задачу на бумаге, а потом закодировать что-то совсем несложное. Иногда писать можно обойтись без написания кода вовсе, таких задач много — например, на применение комбинаторики.
Но иногда приятнее найти совсем нестандартное решение.
Читать полностью »
Open voting project. Размышления вслух
2013-10-26 в 15:32, admin, рубрики: автоматизация, борьба с накрутками, выборы, голосование, информационная безопасность, ит-инфраструктура, оптимизация, электронное правительство, метки: автоматизация, борьба с накрутками, выборы, голосование, оптимизация По результатам последней переписи нас примерно 150 мегабайт. Пусть волеизьявление каждого занимает 2 кило. Получается
обьём всех результатов соответствует примерно 300ам гигабайтам. т.е. 60 DVD болванок. Это кстати в самом неоптимизированном варианте, который например подразумевает полное написание имён и адресов голосующих. Если же всех их пронумеровать…
Читать полностью »
Оптимизация JavaScript и jQuery из-под HTML и CSS при разработке сайта
2013-10-07 в 12:08, admin, рубрики: javascript, jquery, optimization, selectors, Клиентская оптимизация, оптимизация, селекторы, метки: javascript, jquery, optimization, selectors, оптимизация, селекторы Доброго времени суток, читатели. Хочу поделиться неким опытом (советами) при работе с JavaScript + jQuery (по сути, вместо jQuery можете подставить любой другой JS фреймворк). Статья будет интересна новичкам JS и jQuery, но и динозаврам опытным проходить мимо не стоит, в ней вполне можно найти полезную информацию. В основном, в статье я привожу не однозначные случаи, но и место для «стоТыщРазПовтор» я счёл уместным.
Инициализация
Сплошь и рядом встречаю загрузку JS файлов в теге <head>
. В большинстве случаев — это не корректно! Почему? В этом случае JS начинает загружаться до загрузки HTML, и как следствие клиент дольше ждёт загрузки информации за которой он пришёл. Размещение скриптов в <head>
оправдано только в тех случаях, когда JS используется в качестве контроллера (к примеру, всё содержимое на странице мы достаём поблочно через AJAX запросы, в зависимости от URL или Hash). Если не используем, то гораздо лучше вставлять скрипты перед зыкрытием тэга </body>
. JS начнёт загружаться только после того, как посетитель увидит страницу.Читать полностью »
Гравитационный поиск. Gravitational Search
2013-09-23 в 4:32, admin, рубрики: Алгоритмы, оптимизация, метки: оптимизацияПредисловие
Всем доброго времени суток. Представляю вашему вниманию следующую статью из серии освещения новых и малоизвестных эвристических методов оптимизации. Сегодняшний пост своим появлением обязан Эсмату Рашеди, Исааку Ньютону и гравитации.
Читать полностью »
Как оптимизировать подсчёт голосов в день голосования
2013-09-12 в 17:29, admin, рубрики: автоматизация, борьба с накрутками, выборы, голосование, информационная безопасность, ит-инфраструктура, оптимизация, метки: автоматизация, борьба с накрутками, выборы, голосование, оптимизация8 сентября были первые выборы на которых я работал, причём даже не наблюдателем, а целым ПРГ (член избирательной комиссии с правом решающего голоса). Выборы на моём участке проходили с использованием КОИБов — чудесных таких машинок, которые затрудняют вбросы (пачкой бюллетень туда не засунешь, а по одному не дадут наблюдатели) и выдают результат, распечатанный на бумажке по одному нажатию кнопки. Отличная, в теории, вещь. Но, как знают все, кто следил за результатами выборов, подсчёты результатов с участков, оборудованных КОИБами заняли практически всю ночь после выборов — то есть как в старые добрые времена с ручным пересчётом. Вот почему так произошло и что с этим можно сделать я и хочу рассказать.
Чуро Чудо избирательных технологий
Читать полностью »
Джефф Дин из компании Google — это Чак Норрис нашего времени
2013-09-05 в 0:33, admin, рубрики: BigTable, Google, MapReduce, Spanner, высокая производительность, Джефф Дин, корпоративная культура, оптимизация, Программирование, Чак Норрис, юмор, метки: BigTable, MapReduce, Spanner, Джефф Дин, корпоративная культура, оптимизация, Чак Норрис, юмор«Джефф Дин компилирует и запускает свой код перед коммитом, но только чтобы проверить на баги компилятор и CPU», — это один из множества шуточных фактов о Джеффе Дине.
Джефф Дин считается кем-то вроде Чака Норриса. Отличие только в том, что он — вовсе не герой боевиков, а инженер-программист компании Google.
Шутки о нём впервые появились на 1 апреля шесть лет назад. Один из коллег Дина по имени Кентон Варда открыл страничку, куда каждый мог добавлять факты о Джеффе Дине. Идею с энтузиазмом подхватили другие разработчики — и вскоре наполнили страничку множеством таких «фактов».
Читать полностью »
Кайдзен — путь к совершенству
2013-08-30 в 6:42, admin, рубрики: кайдзен, методология, оптимизация, организация, улучшение, Читальный зал, Чулан, метки: кайдзен, методология, оптимизация, организация, улучшениеКайдзен, кайдзэн (яп. 改善 кайдзэн, ромадзи Kaizen; встречается неверный вариант «кайзен») — японская философия или практика, которая фокусируется на непрерывном совершенствовании процессов производства, разработки, вспомогательных бизнес-процессов и управления, а также всех аспектов жизни.
В статье я опишу несколько полезных, зарекомендованных и простых инструментов практики Кайдзен, которые можно начать применять без значительных усилий.
Читать полностью »
Meet-in-the-middle: оптимизация перебора и не только
2013-08-27 в 10:50, admin, рубрики: Алгоритмы, оптимизация, перебор, метки: оптимизация, переборВ прошлой статье я писал про эвристические методы оптимизации перебора. В этой статье я расскажу вам о ещё одной, но уже асимптотической оптимизации — meet-in-the-middle.
Типичные для этого метода снижения асимптотики: и .
Вступление
Метод заключается в том, чтобы разделить задачу пополам, получить какие-то данные и сопоставить их друг с другом.
Meet-in-the-middle имеет смысл применять, если для конкретной задачи выполняются два условия:
1) Время обработки половины данных асимптотически меньше времени получения итогового ответа.
2) Известен асимптотически более быстрый способ получения ответа для всей задачи с использованием информации об обработки её половинок.
Читать полностью »