pozitronik: (fuuuuuuu)
pozitronik ([personal profile] pozitronik) wrote2011-05-06 09:55 am
Entry tags:

Я дурак, дебил и неуч...

...потому что ничем другим нельзя оправдать того, что я не мог решить проблему, описываемую тут и тут.
Суть проблемы была настолько очевидна, что не заметить её мог только абсолютный баклан с образованием в три класса церковно-приходской школы.

Итак, MySQL, скорость записи в таблицу падает с её ростом. Падает в какой-то прогрессии, неочевидной (точно измерить нельзя из-за непостоянства нагрузки), но постоянной.
Прогрессия... прогрессия... прогрессия... Догадались? Правильно, индексы. Два индекса на разные поля, скорость построения которых падает в логарифмической прогрессии.
Решение очевидно: писать таблицы без индексов (даже без всякой оптимизации получается постоянная скорость чуть меньше 0,5 млн. записей в минуту, что с лихвой перекрывает текущие и будущие нужды), а затем строить к ним индексы уже - прямо в оперативной памяти, её у сервера более чем достаточно. Должно получаться в разы быстрее, чем сейчас.
А Oracle... ну его в жопу негоже такому идиоту как я в столь высокие материи соваться.

UPD: и ведь решение проскакивало у меня прямо под носом, а я его не заметил. Назначаю себе три часа молитв с поклонами и самоистязанием.

Молитва и пост!

[identity profile] pozitronik.livejournal.com 2011-05-06 07:36 am (UTC)(link)
Не сыпь мне соль на раны. Процесс решения задачи подзатянулся настолько, что ответ уже не принёс удовлетворения, решение лежало на поверхности, но ничего интересного и оригинального в нём нет.
Приду домой и поправлю в дипломе свою четвёрку по БД на двойку (карандашом конечно).

Re: Молитва и пост!

[identity profile] sreversor.livejournal.com 2011-05-06 07:41 am (UTC)(link)
Твой диплом, я надеюсь, скоро пригодится, не порти его карандашом :)

Простое решение - всегда самое эффективное, но, блеать, сколько раз я тыкался как слепой котенок, а потом другие люди (да-да и ты тоже) показывали мне - "лук ит, как все просто, а ты мучаешься". А потом я познал дзен программирования на ассемблере и сделал свой буддизм со святым пивом и глициновыми галлюцинациями.

Но это уже совсем другая история...

Re: Молитва и пост!

[identity profile] pozitronik.livejournal.com 2011-05-06 08:30 am (UTC)(link)
Ну, в принципе, положительный момент во всей этой поеботне тоже есть. Переделывая парсер для работу с Oracle я нашёл несколько совершенно неочевидных оптимизаций, позволивших не только на порядок увеличить скорость работы парсера, но и определить "узкие места" в работе самого PHP.