Hogyan lehet gyors kapcsolatot létesíteni a bd-vel az orosz verem túlcsordulásának élő keresésével?
Élő keresést fogok készíteni az oldalon (például a Google-ban). Rengeteg anyagot találtam e témában. Csak egy pillanat miatt nem mehetek tovább. Az ismeretek szintje elég kicsi, és nem tudom megérteni, hogyan kell megoldani a következő problémát:
Itt a webhelyről az Ajax segítségével kérés érhető el .php parancsfájlra, amely az adatbázisból kell származnia. Kérdés - hogyan tudok gyorsan csatlakozni az adatbázishoz vagy előre megtenni? Magyarázatok, nem találtam. Tudomásul veszem, hogy a legtöbb időt az adatbázishoz való kapcsolatra költik. Az egyes karakterek beírása után nem lehet csatlakozni hozzá. Minden lógni fog. Az összes példában, amit láttam, csak írt $ mysqli-> query (.). A kapcsolódási sor nem volt ott, mintha már létezne.
Megpróbáltam bekerülni a "tartós kapcsolatok" rendszerébe, de nem értettem, mi volt. Ezenkívül vannak korlátozások az ottani egyidejű kapcsolatok számával kapcsolatban.
Nagyon kérdezek segíteni ebben a kérdésben. Mert az egész projekt szó szerint áll.
Az automatikus befejezés végrehajtásának módja a legoptimálisabb.
Csak keresni az egyértelműen hatékonyság: egy felhasználói bevitel jöhet akár egy tucat kérelmeket, amelyek mindegyike eléri az adatbázisba, ami elméletileg eshet akár millió nyilvántartást és a helyettesítő karakteres keresést szeretnek szenvedni. azokat gondosan ellenőrizni kell, hogy ténylegesen indexeket használjanak; Ráadásul a csiszolt frontend a vállon a helyszínre érkező számok formájában könnyen fel tud mindent elhelyezni, ha minden egyes levél kérésre elküldi, és a bejövő forgalmat két-három-ötször kell megszorozni. Általában az út működik, és ráadásul alapos átgondolással, gyorsan, de nem azonnal, és támogatást igényel; Ezenkívül minden beillesztési frissítés megtörli az indexet és a sebességet.

A Trie-t olyan szekvenciákhoz kell létrehozni, amelyeket meg kell keresni (ebben az esetben karakterláncok vagy karakterláncok). A Trie egy csomópontja az a szerkezet, amelyben az értékeket tárolják. amelyet egy kicsit később tárgyalunk, és a gyermek csomópontokra mutató linkeket térkép formájában (asszociatív tömb) - minden egyes gyermek csomópontot el kell menteni egy entitáskulccsal a sorozattól (esetünkben a kulcs egy szimbólum). Az értékek formájában közvetlenül vagy kereshető értékeket vagy hivatkozásokat tárolnak (például idemek, bár ha ismét be kell mászni az adatbázisba, teljesen hatástalan).
Amikor a Trie települ, a szekvenciákat a kezdeti csomópontból származó fióktá alakítják át, és a szekvenciának megfelelő értéket a szekvencia utolsó entitásának megfelelő csomóponthoz írjuk. Ha végre egy keresést a termék, és csökkenni fog rekord „tej”, én építettem egy ága a hat csomópontot (ha még nem léteznek abban az időben), és az utolsó egység rögzíti magát a terméket. Ha ezután kapok egy "tejet", akkor kilenc csomó ágat építek (az első hat már létezik), és a "d" -ben közvetlenül a tejtermelőnek írok.

Miért szükséges? Az a) esetben betölteni az egészet a memóriába, b) tartsa ott a kérések között, hogy nem tölt minden alkalommal (Itt a PHP lesz probléma, igen, de senki nem helyezte hatályon kívül a démonok) és c) távolítsa el az összes az összes információt, (és ez csak ritkán több, mint két vagy három sor), akkor egy ilyen fánál az első N eredményt keressük milliszekundumban még a kibaszott vason is. Kereséséhez egyszerűen elbontására string karakterek sorozata, megtalálják a megfelelő csomópontot, és töltse ki a kosarat a jelenlegi keresést, majd a gyermek csomópontok mindaddig, amíg a gyermek csomópontok nincs vége, vagy kosár megtelt a csúcsra. Átlagosan a kórház keresésének összetettsége körülbelül tizenhat karakterből áll, ami hihetetlenül hihetetlen, mint a teljes tömb teljes átjárása.
Az egyetlen probléma a Trie-val, hogy előfeszített keresést végez, és megtalálja a szubsztringt, hogy el kell táplálnia az utótagokat egyenként (egy hatékony, fuzzy keresés nehéz egyáltalán elképzelni); A hatékony kereséshez általában szükség van egy szokásos térkép közelébe
Azon az oldalon, ahol élő keresést fognak végrehajtani, állandó kapcsolatot kell létrehoznia a mysqli használatával:
Annak érdekében, hogy a kapcsolat állandó maradjon, hozzá kell adnia a "p:" előtagot. Tudtam erről.
Ezután a php script kezdetén, amelyhez az ajax csatlakozik, ugyanazt a sort kell írni. Ha a kapcsolat már létezik, akkor nem lesz kapcsolat, de már megvan a kapcsolódási objektum.
Egy olyan oldal, amelyen élő keresőlap található - somepage.php
A kérelem Ajax handler - handler.php