Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 31.07.11
Príspevky: 67
Témy: 38
Príspevok NapísalOffline : 15.04.2011 1:04

Mam "mensi" problem s rychlostou mojho fulltextoveho vyhladavaca.

Zjednodusena verzia, kde je vidiet podstatu problemu:

Kód:
select id from `table`where match(`keyWords`) against('string' in boolean mode) order by id DESC limit 512;


Cele je to spravene obvykle za 0.01s, ale ak vyhladavanemu vyrazu zodpoveda privela riadkov (100000+), to zoradovanie sa predlzi na viac nez 3s napriek tomu ze stlpec id mam indexovany.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 15.04.2011 6:29

zabudol si na order ? om to musi po vybrati este aj zoradit !!!


Offline

Skúsený užívateľ
Skúsený užívateľ
MySQL fulltext priveľa výsledkov a ich zoraďovanie

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 15.04.2011 15:51

podľa mňa nezabudol.. akurát len očakáva, že pri 100 000 + výsledkoch to stihne rovnako rýchlo... :lol:







_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
MySQL fulltext priveľa výsledkov a ich zoraďovanie

Registrovaný: 01.04.10
Prihlásený: 08.10.11
Príspevky: 339
Témy: 0
Príspevok NapísalOffline : 15.04.2011 15:56

allan píše:
Cele je to spravene obvykle za 0.01s, ale ak vyhladavanemu vyrazu zodpoveda privela riadkov (100000+), to zoradovanie sa predlzi na viac nez 3s napriek tomu ze stlpec id mam indexovany.


To ze je indexovany znamena, ze DB server ma vyskladanu nejaku strukturu (obvykle B+ strom), ale hlbka predsa rastie linearne, takze pochopitelne pri rozhodovani musi robit vela porovnani (vypoctova zlozitost nie je O(1) ale logaritmicka v akomkolvek type suboroveho indexu).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 31.07.11
Príspevky: 67
Témy: 38
Príspevok Napísal autor témyOffline : 16.04.2011 16:30

A ako by som to mohol co najefektivnejsie zoradit?

Pokial nema byt ORDER BY v samotnej vyhladacej query, napadlo ma jedine vytvorit CRON s poziadavkou ALTER TABLE ... ORDER BY id DESC, ale to pri robustnejsich db nie je velmi dobry napad.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 16.04.2011 18:17

druha moznost je mat dostatok RAMky aby databaza nemusela data pred zoradovanim swapovat na disk


Offline

Užívateľ
Užívateľ
MySQL fulltext priveľa výsledkov a ich zoraďovanie

Registrovaný: 01.04.10
Prihlásený: 08.10.11
Príspevky: 339
Témy: 0
Príspevok NapísalOffline : 16.04.2011 18:51

V MySQL sa da nastavit velkost buffra pre indexy, myslim ze sa to vola key_buffer_size ...

Inak to nie je zrovna banalna zalezitost, fulltextove hladanie je narocne. Potom sa zvykne distribuovat vypoctovy vykon na viac serverov, optimalizovat rozhodovacie stromy dotazov(toto som videl len v Oracle, vyplyva to z ekvivalentnych zapisov niektorych query a parser sa rozhoduje niekde nespravne a da sa ho nutit spravit ine rozhodnutie - cestra v strome ...), popr. zvacsit pocet vlakien ktore obsluhuju indexy (znova neviem ako a ci sa to da v MySQL) ...

Najjednoduchsie (a casto aj najlacnejsie) riesenie je hruba sila (silnejsie zelezo), pokial to teste ma zmysel.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 31.07.11
Príspevky: 67
Témy: 38
Príspevok Napísal autor témyOffline : 16.04.2011 18:57

Rozumiem.

vykon++ => rychlost++

aaa je lepsie zoradovat to v kazdej query alebo pouzivat CRON??


Offline

Užívateľ
Užívateľ
MySQL fulltext priveľa výsledkov a ich zoraďovanie

Registrovaný: 01.04.10
Prihlásený: 08.10.11
Príspevky: 339
Témy: 0
Príspevok NapísalOffline : 16.04.2011 22:06

Ak to dobre chapem, tak ty sa snazis tym cronom v intervaloch usporiadavat tabulku.
To tak ale nefunguje :-)

Data su v tabulke "nahadzane". Ked nie je nad tabulkou index tak sa sekvencne prehladavaju bloky. Ak je nad nou index, tak to je struktura ulozena v pamati (ok nody su uz adresy na disku), ktora ukazuje kam sa mas pozerat pri hladani kluca (podla ktoreho je to indexovane).

Navyse alter table meni schemu tabulky, nie jej data.

To ze spravis order by uz spravis nad selectnutymi datami, nema to nic s tym, ako budu data vyzerat v tabulke.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.03.08
Prihlásený: 31.07.11
Príspevky: 67
Témy: 38
Príspevok Napísal autor témyOffline : 16.04.2011 22:16

Snazim sa tie data nejakym sposobom zoradit a nejako sa nemozem zmierit s tym, ze je to take narocne pre zelezo. Pride mi zvlastne, ze vyhladane same o sebe je to za necelu stotinu sekundy a zoraduje sa to potom niekolko sekund. Mam pocit, ze som tam niekde spravil chybu, neviem ako to optimalizovat.


Odpovedať na tému [ Príspevkov: 10 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. zoradovanie dat vybratych z mysql

v PHP, ASP

3

589

17.05.2008 22:26

PHP zaciatocnik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mysql - triedenie výsledkov po slovensky

v Databázy

5

1238

21.01.2010 11:52

Merlin_sk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. NERO - zoraďovanie súborov

v Ostatné programy

2

262

20.06.2012 9:05

Denco1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zoradovanie zositov v exceli

v Ostatné programy

1

378

03.08.2011 10:59

Ivuso Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. súbor chrome.exe využiva privela graficku kartu

v ATI/AMD grafické karty

10

442

14.03.2014 20:46

Kraliček Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výhrážky v listoch od Apple sú už priveľa!

v Novinky

4

470

15.07.2012 20:34

sysel777 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Usporiadanie vysledkov

v JavaScript, VBScript, Ajax

3

316

25.12.2013 15:07

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Google vyhladavac (zobrazovanie vysledkov)

v Internetový marketing, SEO, reklama

9

2498

07.05.2009 21:39

lolko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zoradenie vysledkov v JOINe

v Databázy

2

352

11.02.2013 16:14

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. WordPress: forma zobrazenia výsledkov vyhľadávania

v Redakčné systémy

7

525

26.10.2014 9:09

capricorn7 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Porovnavanie vysledkov v poli s toleranciou

v Technológia .NET

2

677

03.03.2020 13:22

akqj10 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Firefox - plugin na streamovanie vysledkov hladania?

v Sieťové a internetové programy

0

423

05.04.2010 13:16

SkyHiRider Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladanie v array poli a usporiadanie výsledkov

v PHP, ASP

10

773

09.07.2009 16:22

Unlink Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pôjde vám hra na tomto PC - pár mojich výsledkov

v Počítačové hry

4

768

22.12.2007 18:25

Mir Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. kde ich zohnat

v Pamäte

23

1436

22.05.2007 17:08

Jaro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prehrievanie ICH, MCH

v Chladiče a všetky druhy chladenia

6

442

03.09.2013 16:54

banzai Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra