Вчера посещенията на kakvo.org надхвърлиха 11 000 и машината клекна. Клекна до толкова, че mysqld и apache2 заеха 100% и дори не можеш да се логнеш в машината нормално, а след известно време(20 сек.). За целта първата и най- основна част от решаването на този проблем е оптимизирането на mysql и apache2. След няколко огледа и мъки в натоварената машина забелязах, че полетата за "превод от" и "превод на" са тип "text" и не са индекси. В този случай когато се търси конкретен превод със заявка "… where превод от='търсен превод' " отнема 1.2 сек. и сериозно натоварва машината. Мислех 100 часа :P и реших да добавя едно поле "превод_md5" char(32) в което да пиша md5 на "превод от" и което ще бъде index. По този начин когато се търси превод не се изпълнява старата заявка където се търси самият превод, а новата в която се търси md5 на превода. Благодарение на уникалните и индексирани md5 хешове на таблицата, заявките се оптимизираха до заветните 00.00 сек. за изпълнение, а употребата на MySQL падна до 10%. Сега машината е във война с племето на Apache, но пък за сметка на това е в съюз със ордена на MySQL. Започвам да мисля още 100 часа как да подобря дипломатическите отношения на машината с племето на Apache.
Оптимизиране на mysql таблицата на kakvo.org,
Два въпроса имам към теб :)
1.Защо не го правиш с ID, а с md5?
2.Защо не триеш .bak файловете? :)
1. Защото няма как да го извадя по ID при положение, че не търся по ID, а по текст или превод. Затова правя md5 на текста и един вид това е ID :)
2. Оцелил си точния момент за да ги видиш докато съм го човъркал ;)
1.Е имах в предвид да го търсиш по ID и после да си изкарваш превода.Както и да е и така се получава :)
2.Ами не :) Преди малко повече от седмица го видях това, но така и не писах.
И не си изтрил всичките…
http://www.kakvo.org/include/
:)
Не виждам това което мислиш. Когато търся "как си човече" за какво ид става въпрос ? За да разбера превода на "как си човече" трябва да търся по стринг, а не по ИД (select prevod_en from tablichka where prevod_bg='как си човече' , но понеже много повечко процесорна мощ се ползва така използвам md5 на всеки такъв превод които е уникален ключ по този начин пестя 100% процесор) . Както и да е :)
Да ще премахна направо листването. Явно е редно повече да се замисля за злонамерени очички :)(не визирам теб). Thx
Дано скоро имам малко повечко време за да обърна по- сериозно внимание на kakvo.org