livejournal
Nov. 14th, 2001 05:07 amПри попытке посмотреть фифовую ленту с заметным скипом счастливый исход имеет место быть примерно в пяти процентах случаев. все остальное время я получаю Timeout rendering page либо connection reset by peer. Да, сейчас около пяти утра, прайм-тайм по американским меркам, вероятно.
Забавно, что 95% процентов ресурсов, которые livejournal.com тратит в данный момент на общение со мной, уходит на генерацию сообщения про Timeout и создание connection reset-ов. Если бы сервера livejournal хоть четверть этого времени тратили бы на генерацию страниц, всем было бы существенно приятнее жить. Вообще использование rlimit-ов для традиционных веб-приложений -- это отдельная трудная тема, конечно.
Граждане, мне кажется, я готов начать имплеметить механику синхронизации. Митинг по поводу устройства протокола для этого необязателен, но может быть полезен. Если вы это мнение разделяете, давайте еще раз попробуем договориться о времени и месте. Как насчет четверга?
mdh, мне нужен аккаунт на бете, и я хотел бы с тобой перетереть кое-что. и с
a48 тоже. Вы как? Сегодня, скажем?
Забавно, что 95% процентов ресурсов, которые livejournal.com тратит в данный момент на общение со мной, уходит на генерацию сообщения про Timeout и создание connection reset-ов. Если бы сервера livejournal хоть четверть этого времени тратили бы на генерацию страниц, всем было бы существенно приятнее жить. Вообще использование rlimit-ов для традиционных веб-приложений -- это отдельная трудная тема, конечно.
Граждане, мне кажется, я готов начать имплеметить механику синхронизации. Митинг по поводу устройства протокола для этого необязателен, но может быть полезен. Если вы это мнение разделяете, давайте еще раз попробуем договориться о времени и месте. Как насчет четверга?
no subject
Date: 2001-11-13 06:14 pm (UTC)Ýòî áåçóìèå, íî òî, ÷òî áûëî ðàíüøå, åù¸ õóæå áûëî. Âñå ðåøåíèÿ íàòûêàþòñÿ íà ïðîáëåìû ñ mysql'åì, ò.å. åãî ïåðôîðìàíñîì íà ñêîëüêî-íèáóäü ñëîæíûõ çàïðîñàõ.
Âñ¸ ðàâíî ÿ íàä ýòèì ñåé÷àñ ðàáîòàþ, åñòü èäåè íàñ÷¸ò òîãî, êàê ïîëíîñòüþ èçìåíèòü ñèñòåìó ïîñòîðéêè ôðåíäîâûõ ëåíò, ÷òîáû ýòîé ïðîáëåìû íå áûëî.
no subject
Date: 2001-11-13 06:51 pm (UTC)êñòàòè, õîòåë ñïðîñèòü, â ÷åì ïðåòåíçèè ê mysql.
â ïðèíöèïå, ãèáåëåí èçíà÷àëüíûé ïëàí ïîñòðîåíèÿ -- â êîòîðîì äëÿ ÷àñòûõ çàïðîñîâ (journal view/friends view) èñïîëüçóåòñÿ ïðèíöèïèàëüíî äîðîãîé select query, à äëÿ ðåäêèõ çàïðîñîâ (post message/comment) -- ïðèíöèïèàëüíî äåøåâûé insert. ýòî æå ÿâíûé looking for troubles.
òî åñòü ïî-õîðîøåìó ðåäêàÿ îïåðàöèÿ post äîëæíà áûòü äîðîãîé -- è âî âðåìÿ post-à íàäî áû àïäåéòèòü õîòÿ áû áàçîâî îáúåêòû, îòíîñÿùèåñÿ ê friend-ëåíòàì. à âî âðåìÿ view ïðîñòî ýòè îáúåêòû çà÷èòûâàòü, áåç ñëîæíûõ âèäîâ ñåëåêòà. êîíå÷íî, ÿ íå óòâåðæäàþ, ÷òî òàêàÿ ìîäèôèêàöèÿ ê ñóùåñòâóþùåìó äâèæêó âîçìîæíà.
íàñ÷åò ñêèïà -- à ÷òî-òî ìåøàåò ñäåëàòü ïðè ïîñòðîåíèè ôðåíäîâîé ëåíòû
"select <...> limit 300, 25"?
Re:
Date: 2001-11-13 07:33 pm (UTC)Íàñ÷¸ò çàïðîñîâ. Âñ¸ íå òàê ïðîñòî ïîòîìó ÷òî âèä ôðåíäîâîé ëåíòû (äà è ëþáîé äðóãîé) çàâèñèò îò remote user. Åñëè À ñìîòðèò ëåíòó äðóçåé Á îí âèäèò îäíî, à åñëè  ñìîòðèò òó æå ëåíòó, îí âèäèò äðóãîå.
Âìåñòå ñ òåì, ðàíüøå áûëà ñèñòåìà äîïîëíèòåëüíûõ hint tables äëÿ áîëåå áûñòðîãî ïîñòðîåíèÿ ëåíò äðóçåé, äà. Îíè àïäåéòèëèñü âî âðåìÿ âíåñåíèÿ çàïèñåé (à åù¸ äî ýòîãî áûëà îäíà sql query ê-ÿ ñòðîèëà âñ¸, è òàê íà ñàìîì äåëå è äîëæíî áûòü, è ñ íîðìàëüíûì db îíî áû òàê è äåëàëîñü, íî mysql å¸ ñëèøêîì ìåäëåííî âûïîëíÿë, íåñìîòðÿ íà âñå èíäåêñû). Ýòà ñõåìà îêàçàëàñü íå ñàìîé óäà÷íîé ãëàâíûì îáðàçîì èç-çà î÷åíü áîëüøîãî êîë-âà òðàôôèêà íà ýòèõ òàáëèöàõ (òðàôôèêà âî âðåìÿ ðåïëèêàöèè ÁÄ íà ñëýéâàõ), îíè çàíèìàëè î÷åíü ìíîãî ìåñòà. Ñóùåñòâóþùèé ñåé÷àñ ìåòîä ïîñòðîéêè ëåíòû - ñóìàñøåäøèé êîìïðîìèññ âñåãî ñî âñåì, ê-é òåì íå ìåíåå ðàáîòàåò õîðîøî, íî íà÷èíàåò ñáîèòü íà áîëüøèõ ñêèïàõ è áîëüøîì êîë-âå äðóçåé, êàê ó ôèôà. ß áóäó åãî ìåíÿòü, êàê òîëüêî óòðÿñóòñÿ äåòàëè ëó÷øåãî ïîäõîäà (ñåé÷àñ ïåðåïèñûâàåìñÿ ñ äåâåëîïåðàìè mysql, ïûòàåìñÿ âûÿñíèòü, êàê ìîæíî óáûñòðèòü íåêîòîðûå çàïðîñû, ê-å îí äîëæåí âûïîëíÿòü áûñòðî íî íå âûïîëíÿòå).
no subject
Date: 2001-11-13 10:05 pm (UTC)Ïîíèìàþ Âàøó ðåàêöèþ :) áîëüøàÿ çàäà÷à, ÷òî è ãîâîðèòü. Îäíàêî, ÿ ñîáèðàþñü ðåàëèçîâàòü òîëüêî áàçîâóþ íåîáõîäèìóþ ôóíêöèîíàëüíîñòü íà ïåðâîì ýòàïå, è ýòî êàæåòñÿ âåùüþ îáîçðèìîé.
no subject
Date: 2001-11-14 10:40 pm (UTC)1) èñïîëüçîâàòü âåëè÷èíó ñêèïà êàê ïàðàìåòð ê ëèìèòó. ïðè ýòîì, çà ñ÷åò íåâèäèìûõ äëÿ ñìîòðÿùåãî çàïèñåé, áóäóò ïîâòîðû ïðè ëèñòàíèè íàçàä, íî ýòî áóäåò ðàáîòàòü õîòü. ìíå êàæåòñÿ, âñå æ ëó÷øå, ÷åì ñåé÷àñ.
2) âû÷èñëÿòü skip äëÿ ññûëêè "previous" íå ïî âèäèìûì, à ïî âñåì çàïèñÿì; òåîðåòè÷åñêè â ýòîì ìîæíî óñìîòðåòü êàêîå-òî íàðóøåíèå ïðàéâàñè, íî óæ î÷åíü óñëîâíîå.
3) âìåñòî âåëè÷èíû skip èñïîëüçîâàòü âåëè÷èíó "last_seen_itemid" -- òàì æå, íåáîñü, orderby itemid?
Re:
Date: 2001-11-15 11:15 am (UTC)1. Ïðåäïîëîæèì, ÷òî ñåé÷àñ ñêèï ðàâåí 200, è ðàçìåð ñòðàíèöû - 25 çàïèñåé.
2. Âûíèìàåì âñåõ äðóçåé äàííîãî þçåðà â ïîðÿäêå óáûâàþùåãî time of last update (ýòî ïðîèíäåêñèðîâàííîå ïîëå).
3. Çàãðóæàåì 225 ïîñëåäíèõ çàïèñåé ïåðâîãî äðóãà (èëè ìåíüøå, åñëè íåò ñòîëüêî), 224 - âòîðîãî, 223 - òðåòüåãî, è òàê äàëåå
4. Êàæäàÿ çàãðóçêà - îäíî îáðàùåíèå ê ÁÄ, è ýòî îäíî îáðàùåíèå îòäåëüíîé ôóíêöèåé âûòÿãèâàåò òîëüêî òå çàïèñè ,ê-å ìîæåò óâèäåòü äàííûé remote user.
5. Ïðîäîëæàåì ýòî äî òåõ ïîð, ïîêà ó íàñ: à) åñòü 225 ãîòîâûõ çàïèñåé; á) ñàìàÿ ñòàðàÿ èç íèõ ìîëîæå lastupdate ñëåäóþùåãî äðóãà. Ýòî çíà÷èò, ÷òî âñåõ îñòàëüíûõ äðóçåé ìîæíî óæå íå çàãðóæàòü.
5. Âûáðàñûâàåì ïåðâûå 200 çàïèñåé è ïîêàçûâàåì îñòàâøèåñÿ 25.
È òàê êàæäûé ðàç. Ïðè ïðîñìîòðå ëåíòû ôèôà, íàïðèìåð, ìîæåò ïîòðåáîâàòüñÿ çàãðóçêà 200 îòäåëüíûõ ëåíò äðóçåé, ïîêàíå áóäåò âåðíîå óñëîâèå îêîí÷àíèå ïî lastupdate. È ó êàæäîãî ìû çàãðóæàåì 300...299...298... ñòàâÿ òàêèì îáðàçîì ëèìèòû, íî îíè ðåàëüíî ïîìîãàþò òîëüêî ïðè ìàëåíüêèõ ñêèïàõ (0/25/50).
Íåäîñòàòêè äàííîé ñõåìû î÷åâèäíû. Ïðè âñ¸ì ïðè ýòîì îíà çíà÷èòåëüíî áûñòðåå, ÷åì: à) âûòàùèòü âñ¸ îäíèì áîëüøèì çàïðîñîì (SQL âïîëíå ïîçâîëÿåò, íî mysql òóï è òðàòèò íà ýòî ÌÈÍÓÒÛ) á)äåëàòü äîïîëíèòåëüíûå hint tables - ïðåäûäóùèé ìåòîä, î ê-ì ÿ óæå ïèñàë.
Î íîâûõ ïðåäëîæåíèÿõ â îòäåëüíîì ïèñüìå ÷åðåç ïàðó ìèíóò.
Re:
Date: 2001-11-15 11:25 am (UTC)Íåäîñòàòîê îäèí: òåðÿåò ñìûñë ïîëå lastupdate, êîòîðîå íå ïîçâîëÿåò íàì áîëüøå îñòàíîâèòü ïðîöåññ êàê ìîæíî ðàíüøå. Ïðåäïîëîæèì, ìû ñìîòðèì ëåíòó ôèôà íà÷èíàÿ ñ êàêîãî-òî ìîìåíòà íà ïðîøëîé íåäåëå, ïî íîâîìó ìåòîäó (ñàìà âîçìîæíîñòü ÷èòàòü ëåíòó çà ëþáîå âðåìÿ óæå î÷åíü õîðîøà, êîíå÷íî). Ó íàñ íåò âîçìîæíîñòè îòñîðòèðîâàòü äðóçåé ïåðåä çàãðóçêîé òàê, ÷òîáû îñòàíîâèòüñÿ, êîãäà áóäåò èçâåñòíî, ÷òî íà÷èíàÿ ñ êàêîãî-òî äðóãà îíè óæå íå ìîãëè ñþäà íàïèñàòü. lastupdate ó >80% äðóçåé ôèôà áóäåò ïîçæå ïðîøëîé íåäåëè. Çíà÷èò, íàì ïðèä¸òñÿ âîîáùå ãîâîðÿ çàãðóæàòü âñåõ 1600 äðóçåé ôèôà, íåñìîòðÿ íà òî, ÷òî ïî÷òè âñå îíè íè÷åãî íå äàäóò äëÿ ïîñòðîéêè íàøåé ëåíòû èç 25 çàïèñåé. Ñîáñòâåííî ãîâîðÿ, íà÷èíàÿ ñ î÷åíü ðàííåãî ìîìåíòà (êîãäà çàïîëíÿòñÿ âñå 25 ñëîòîâ êàêèìè-òî ïåðâè÷íûìè êàíäèäàòàìè) ìû ñìîæåì ñòàâèòü óìíûå îãðàíè÷åíèÿ â çàïðîñû (çàïèñè äîëæíû ïîïàñòü â ãðàíèöû ìåæäó òåêóùèì ñàìûì ïîçäíèì è òåêóùèì ñàìûì ðàííèì, èíà÷å îíè íàì íå íóæíû), êîòîðûå âûäàäóò íàì íóëåâûå ðåçóëüòàòû íà 99% äðóçüÿõ.
Íî 1600 çàïðîñîâ ê ÁÄ äàæå ñ ïóñòûìè ðåçóëüòàòàìè - âñ¸ ðàâíî Î×ÅÍÜ ìíîãî. Âîò ýòî è åñòü îñíîâíîé íåäîñòàòîê íîâîé ñõåìû, êîòîðûé ïîêà íåÿñíî êàê ïðåîäîëåòü. Âî âñ¸ì îñòàëüíîì îíà êóäà ëó÷øå ñòàðîé.
Ïîïûòêà ïîñòðîèòü àíàëîã lastupdate, íî çà "òî" âðåìÿ, íàïð. íåäåëüíîé äàâíîñòè, äèíàìè÷åñêè, îòäåëüíûì çàïðîñîì, íè ê ÷åìó íå ïðèâåëà - mysql ñëèøêîì ìåäëåííî åãî èñïîëíÿåò (õîòÿ îïÿòü-òàêè, äîëæåí áû áûñòðî, ò.ê. âñ¸ ïðîèíäåêñèðîâàíî). Åñëè áóäóò èäåè - ïèøèòå. Ìû ïîêà òîæå äóìàåì.
no subject
Date: 2001-11-15 11:23 pm (UTC)ïî÷èòàë ýòî ìåñòî â êîäå.
ÿ ïðàâèëüíî ïîíèìàþ, ÷òî [ïîñòðîèòü îäèí select ïî òàáëèöå log ñ óñëîâèÿìè ïî timebefore è ownerid IN (<âñå äðóçüÿ ôèôà>), à ïîòîì ðåôàéíèòü ðåçóëüòàò] âû ïðîáîâàëè, è mysql íà ýòîì äîõíåò? òîãäà íå âèæó âàðèàíòîâ, â ðàìêàõ ñóùåñòâóþùåé ìîäåëè.
ìåëêèé âîïðîñ: âîò ïðè ôîðìèðîâàíèè friends view òàì ëåãêî ïîëó÷àþòñÿ ñîòíè îäíîòèïíûõ ñåëåêòîâ çà ðàç, ïðè ýòîì ýòîò òèïîâîé ñåëåêò êàæäûé ðàç prepare-èòñÿ. íàñêîëüêî ÿ ïîíèìàþ, ýòî îòíîñèòåëüíî íåäåøåâîå óäîâîëüñòâèå -- ïî êðàéíåé ìåðå, òàê ãîâîðèò äîêóìåíèòàöèÿ. åñòü êàêèå-òî ïðè÷èíû äëÿ òîãî, ÷òîáû íå ïðîèçâåñòè prepare îäèí ðàç è ïîòîì òîëüêî ïîäêðó÷èâàòü ïàðàìåòðû ê execute?
Re:
Date: 2001-11-16 02:23 am (UTC)Îäèí çàïðîñ - äà, ïðîáîâàëè, è íè÷åãî íå âûõîäèò. Ïîñëåäíèé ðàç ÿ â÷åðà ïåðåïðîáîâàë, ïðîâåðÿÿ Áðýäà. Îí ìíå îòâåòèë ÷åðåç 18 ñåêóíä íà ôðåíäîâóþ ëåíòó èç 50 äðóçåé, èëè ÷òî-òî òèïà òîãî ;(
Ñåé÷àñ åñòü åù¸ êàêèå-òî çàäóìêè, áóäó ñåãîäíÿ ïðîâåðÿòü.
Î ñîòíÿõ ñåëåêòîâ - ïîñìîòðèòå âíèìàòåëüíåé âíóòðü get_recent_items, âñÿ ñóòü â òîì, ÷òî äëÿ êàæäîãî ôðåíäà çàïðîñ ïîëó÷àåòñÿ ÷óòü-÷óòü ðàçíûì, ïîòîìó ÷òî ìû äîáàâëÿåì ðàçíûå óñëîâèÿ security â çàâèñèìîñòè îò òîãî, ÿâëÿåòñÿ ëè remote viewer äðóãîì äàííîãî ôðåíäà è åñëè äà â êàêèõ ãðóïïàõ äðóçåé îí îáèòàåò. Èìåòü îäèí è òîò æå çàïðîñ íà âñåõ íå ïîëó÷èòñÿ.
no subject
Date: 2001-11-16 02:58 am (UTC)êîíå÷íî, ÿ ñìîòðåë get_recent_items, îá ýòîì è áûë âîïðîñ. çàïðîñ ïîëó÷àåòñÿ â îáùåì ñëó÷àå ðàçíûé, íî ðàçíîñòü ýòà -- â $extra_sql è $secwhere, áîëüøå íèãäå, åñëè ÿ ïðàâèëüíî ïîíèìàþ. ÷òî äàåò ìàêñèìóì äâà ðàçíûõ prepare çà îäèí view (åñëè ÿ ïðàâèëüíî ïîíÿë, âíóòðè îäíîãî view $extra_sql -- êîíñòàíòà). äâà âìåñòî, ñêàæåì, äâóõ ñîòåí. îñòàëüíîå ðàçíîîáðàçèå çàïðîñîâ ðåøàåòñÿ ÷åðåç ïàðàìåòðèçàöèþ execute.
íó ïîòîì, òàì æå åñòü åùå ïî ïóòè êó÷à ñåëåêòîâ, êîòîðûå âîîáùå íèêîãäà íå ìåíÿþòñÿ è prepare-ÿòñÿ íà êàæäîì øàãó. ïðîùå ñêàçàòü, prepare âîîáùå íèãäå, êàæåòñÿ, íå êåøèðóåòñÿ.
Re:
Date: 2001-11-16 03:13 am (UTC)Íàñ÷¸ò ñåëåêòîâ, ê-å prepare-ÿòñÿ íà êàæäîì øàãó - ýòî âåðíî. ß íå ïîìíþ, âïðî÷åì, ñêîëüêî ðèêâåñòîâ ñåé÷àñ ïðîâîäèò îäèí ñåðâåð äî òîãî, êàê åãî FastCGI óáèâàåò è íîâûé çàïóñêàåò, ðàíüøå òàì áûëî îòíîñèòåëüíî ìàëî, ÷òî-òî âðîäå 50. Íî ÿ ïîèãðàþñü ñ ýòèì, ñïàñèáî çà èäåþ.
no subject
Date: 2001-11-16 03:29 am (UTC)$secwhere = "AND (security='public' OR (security='usemask' AND allowmask & $mask != 0))";
â ðàìêàõ îòðàáîòêè îäíîãî çàïðîñà íà friends view èñïîëüçóåòñÿ, íàñêîëüêî ÿ ïîíèìàþ, òîëüêî äâå èç íàçâàííûõ òðåõ ôîðì -- ñòàòè÷íàÿ è îïèñàííàÿ âûøå.
â îïèñàííîé âûøå ôîðìå åñòü òîëüêî îäíî èçìåíÿåìîå ìåñòî -- ýòî $mask. íè÷òî âðîäå áû íå ìåøàåò ñäåëàòü åãî ïàðàìåòðîì ê execute. ÷òî-òî òèïà
$secwhere = "AND (security='public' OR (security='usemask' AND allowmask & ? != 0))";
è, äàëåå,
$sth->execute($mask) ;
èëè ÿ ÷òî óïóñêàþ?
Re:
Date: 2001-11-16 03:37 am (UTC)(åñëè ó Âàñ åñòü æåëàíèå, by all means ïîñûëàéòå ñàìè patch â ðàññûëêó!)
no subject
Date: 2001-11-16 07:58 am (UTC)êýøèðîâàííûìè prepare ÿ ëè÷íî íèêîãäà íå ïîëüçîâàëñÿ, íî óæ áîëüíî îíè â ìàíå ïðî DBI íàñòàèâàþò, ÷òî ýòî óñêîðÿåò âåùè è âîîáùå the right thing. íà îáúåìàõ áåòû ýòî íå î÷åíü-òî è ïîïðîáóåøü: áóñò âðÿä ëè áóäåò îñîáî çàìåòåí.
õîòåëîñü ñïðîñèòü Âàøå ìíåíèå -- åñëè ÿ íåêîòîðûé ïðîòîêîë ñèíõðîíèçàöèè òàêè ðåàëèçóþ, â âèäå ïàò÷à ê ñóùåñòâóþùåìó äâèæêó è äîêè, íàïðèìåð -- åãî ïðîêîììèòÿò? à òî íà÷èíàåò êàçàòüñÿ, ÷òî òàê âñåì áóäåò óäîáíåå: â ïðîöåññå ðåàëèçàöèè ìíå àâòîìàòè÷åñêè ïðèäåòñÿ âñå hidden issues êàê-òî ðàçðåøèòü. äóìàþ ïîäíÿòü ãäå-íèáóäü alpha.livejournal.ru, â ïðîòèâîâåñ áåòå, è ìåæäó íèìè ñòðîèòü ïèð ïîñòåïåííî. ìíå êàæåòñÿ, ýòî íå îòðàçèòñÿ íà èäåîëîãèè ñóùåñòâóþùåãî äâèæêà.
Re:
Date: 2001-11-16 10:52 am (UTC)ß ÍÅÍÀÂÈÆÓ ÝÒÎÒ ÊÓÑÎÊ ÄÅÐÜÌÀ.
Èçâèíèòå ;)
×åñòíî ãîâîðÿ, ÿ ñîìíåâàþñü, ÷òî åñëè Âû ïðåäîñòàâèòå ãîòîâûå ïàò÷è ñèíõðîíèçàöèè ñ äîêàìè, èõ ïðîñòî òàê ïðîêîììèòÿò, äàæå åñëè îíè áóäóò ðàáîòàòü. Êàê ìû óæå óáåäèëèñü, èäåé íàñ÷¸ò òîãî, êàê ñäåëàòü äèñòðèáóöèþ åñòü ìíîãî, è âûáîð ñîáñòâåííî àðõèòåêòóðû íå ìåíåå âàæåí ÷åì ñàì êîä; ÿ íå äóìàþ, ÷òî Áðàä ñîãëàñèòñÿ ïðèíÿòü íåïîíðàâèâøóþñÿ åìó àðõèòåêòóðó òîëüêî ïîòîìó, ÷òî åñòü ðàáî÷èé êîä.
Ìíå êàæåòñÿ áîëåå íà䏿íûì ñíà÷àëà îáñóäèòü ñòðàòåãèþ è âûáîð àðõèòåêòóðû â ðàññûëêå.
Êàñàòåëüíî ñåðâåðà - åñëè Âàì íóæíî, ÿ ïîïðîøó îðãàíèçîâàòü äëÿ Âàñ goathack account - ýòî ýêêàóíò íà goathack.livejournal.org, ãäå ó Âàñ åñòü ñâîé àïà÷ (áåãóùèé íà ñâî¸ì ïîðòó) è ñâîé myqsl, ïðåóñòàíîâëåííàÿ ñðåäà ÆÆ è ïîëíàÿ âîçìîæíîñòü ýêñïåðèìåíòèðîâàòü ñ ÷åì óãîäíî. Ýòî ñïåöèàëüíàÿ ñðåäà äëÿ äåâåëîïåðîâ ÆÆ, î÷åíü óäîáíî.
no subject
Date: 2001-11-16 02:32 pm (UTC)ðàçíèöà âî âðåìåíè âûïîëíåíèÿ íàáëþäàåòñÿ äîâîëüíî ñòàáèëüíî -- âàðèàíò ñ îäíîêðàòíûì prepare çàíèìàåò íà 30%+ ìåíüøå user cpu. â îæèäàíèè îòâåòîâ îò sql-ñåðâåðà îáà ïðîâîäÿò îäèíàêîâîå âðåìÿ.
ÿ íå äåëàþ fetchrow â ýòîì òåñòå -- òîëüêî prepare è execute.
Re:
Date: 2001-11-16 02:51 pm (UTC)ß ñìîòðþ â èñõîäíèêè DBI-driver'à äëÿ mysql è íå âèæó, ãäå îí ìîæåò ñýêîíîìèòü 30%. Ðàçâå ÷òî íà òðèâèàëüíûõ âåùàõ òèïà àëëîêàöèè ïàìÿòè è ïîäîáíîé ìåëî÷è, íî òîãäà ýòè 30% äîëæíû äàâàòü î÷åíü ìàëî.
Ïðè÷èíà ïî ê-é äîêè DBI ñîâåòóþò ýêîíîìèòü íà prepare - êàê ðàç â òîì, ÷òî â íàñòîÿùèõ ñåðâåðàõ prepare - ýòî îòäåëüíûé âûçîâ ñåðâåðà, ê-é âñ¸ ïàðñèò è âîçâðàùàåò íåêóþ âíóòðåííþþ ñêîìïèëèðîâàííóþ ôîðìó. Íî â ñëó÷àå ñ mysql ñåðâåð ïðîñòî íå âûçûâàåòñÿ ïî prepare.
Ñòðàííî.
no subject
Date: 2001-11-17 12:21 am (UTC)àáñîëþòíî íè÷åãî, â îáùåì, èíòåðåñíîãî.
åùå ðàç îáðàùàþ Âàøå âíèìàíèå íà òî, ÷òî 30% âûèãðûøà -- ýòî â òåðìèíàõ user cpu, ò.å. ïðîöåññ, äåëàþùèé prepare è 1000 execute()-îâ, ñúåäàåò íà 30% ìåíüøå cpu êâàíòîâ, ÷åì ïðîöåññ, äåëàþùèé 1000 prepare è òûñÿ÷ó execute.
1) îáà ïðîöåññà áîëüøå íè÷åãî íå äåëàþò -- íå äåëàþò, â ÷àñòíîñòè, íèêàêèõ fetchrow_*.
2) êàê ÿ óæå ñêàçàë, îòâåòà îò sql-ñåðâåðà îíè îáà æäóò â òî÷íîñòè îäèíàêîâîå âðåìÿ -- âñÿ ýêîíîìèÿ òîëüêî â ïîòðåáëåíèè cpu êâàíòîâ.
no subject
Date: 2001-11-13 10:31 pm (UTC)no subject
Date: 2001-11-13 10:45 pm (UTC)no subject
Date: 2001-11-14 05:27 am (UTC)åñëè âñå-òàêè âûáåðåòåñü, ìîæíî ãäå-íèáóäü â öåíòðå ÷àñîâ â äåâÿòü, ñêàæåì -- êàêèå-íèáóäü ïèðîãè, íàïðèìåð. êàê âàì òàêîå?
no subject
Date: 2001-11-14 05:29 am (UTC)no subject
Date: 2001-11-14 07:15 am (UTC)no subject
Date: 2001-11-14 08:36 am (UTC)no subject
Date: 2001-11-14 09:09 am (UTC)no subject
Date: 2001-11-14 09:14 am (UTC)