Hirdetés
- GoodSpeed: A RAMválság és annak lehetséges hatásai
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- Magga: PLEX: multimédia az egész lakásban
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
Új hozzászólás Aktív témák
-
cucka
addikt
Egy ilyen sql-el érdemes elindulni:
select events.* from events where users_id in (select friend_id from relations where users_id={$user_id}) order by dateofcreation ascAz in()-ben található lekérdezés kiszedi a $user_id-hez tartozó barátok azonosítóját (ide php-ban be kell helyettesíteni a $user_id változót. A külső lekérdezés meg egyszerűen listázza az events táblát, leszűrve a megfelelő felhasználói azonosítók szerint. Ha a barát adataira is szükség van, akkor bejoin-olod a users táblát is és kész.
A te php-s megoldásod annyi soron megy végig, amennyi a userek és a relációk számának szorzata, tehát az algoritmusod négyzetes.
Ebben az sql-es megoldásban a belső lekérdezés csak egyszer fut le és az index miatt logn időben végez, a külső lekérdezés pedig végigfut az összes soron, de egy index létrehozásával ezt szintén meg tudja oldani logn időben.
Gondolatkísérlet: tegyük fel, hogy nő az oldalad látogatottsága. Tegyük fel, hogy az eredetihez képest tízszer annyi felhasználó van, ami mondjuk húszszor annyi relációt jelent. Ez esetben:
- az én lekérdezésem nagyjából ugyanannyi idő alatt végez a kereséssel, mint előtte
- a te php-s megoldásod 200-szor (
) annyi műveletet fog végezni, mint előtte
Új hozzászólás Aktív témák
- Lenovo Thinkpad P15 Gen 2 , Több darab!!! NVIDIA RTX A2000!!!
- Dobozos ÚJ Asus Vivobook 15 Intel Core 7 150U 16 GB RAM 1 TB SSD FHD Garancia
- Xbox Series S 512 GB, Minden tartozékával kiváló állapotban
- Eladó/Lenovo X240 Ultrabook/I5-4200U/8GB DDR3/Win 10Home/12,5" FHD/ !ÉRINTŐKÉP!/!!!
- Bomba ár! Lenovo ThinkPad T14s G2 - i7-11GEN I 16GB I 1TSSD I 14" FHD Touch I W11 I Cam I Gari!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Xbox Series S 512 GB + kontroller 6 hó garancia, számlával!
- GYÖNYÖRŰ iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3972, 100% Akkumulátor
- HP Z-Book G3 ! Csere-Beszámítás! I7 6820HQ / Nvidia Quadro M1000M 2GB / 16Gb DDR4 ! Új Akksi!
- AKCIÓ! HP EliteBook x360 830 G7 i5-10210U 16GB 512GB 1 év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest
) annyi műveletet fog végezni, mint előtte
