If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org
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 - ïðåäûäóùèé ìåòîä, î ê-ì ÿ óæå ïèñàë.
Î íîâûõ ïðåäëîæåíèÿõ â îòäåëüíîì ïèñüìå ÷åðåç ïàðó ìèíóò.