[ 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 | 38

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 | 2

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 | 66
Bydlisko: Žilina

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 | 0

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 | 38
Napísal autor témyOffline : 16.04.2011 16:30 | MySQL fulltext priveľa výsledkov a ich zoraďovanie

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 | 2

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 | 0

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 | 38
Napísal autor témyOffline : 16.04.2011 18:57 | MySQL fulltext priveľa výsledkov a ich zoraďovanie

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 | 0

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 | 38
Napísal autor témyOffline : 16.04.2011 22:16 | MySQL fulltext priveľa výsledkov a ich zoraďovanie

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.


 [ Príspevkov: 10 ] 


MySQL fulltext priveľa výsledkov a ich zoraďovanie



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

616

17.05.2008 22:26

PHP zaciatocnik

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

mysql - triedenie výsledkov po slovensky

v Databázy

5

1276

21.01.2010 11:52

Merlin_sk

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

NERO - zoraďovanie súborov

v Ostatné programy

2

292

20.06.2012 9:05

Denco1

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

zoradovanie zositov v exceli

v Ostatné programy

1

411

03.08.2011 10:59

Ivuso

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

482

14.03.2014 20:46

Kraliček

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

496

15.07.2012 20:34

sysel777

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

Usporiadanie vysledkov

v JavaScript, VBScript, Ajax

3

354

25.12.2013 15:07

shaggy

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

Google vyhladavac (zobrazovanie vysledkov)

v Internetový marketing, SEO, reklama

9

2551

07.05.2009 21:39

lolko

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

Zoradenie vysledkov v JOINe

v Databázy

2

388

11.02.2013 16:14

Ďuri

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

579

26.10.2014 9:09

capricorn7

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

463

05.04.2010 13:16

SkyHiRider

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

Porovnavanie vysledkov v poli s toleranciou

v Technológia .NET

2

726

03.03.2020 13:22

akqj10

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

Hladanie v array poli a usporiadanie výsledkov

v PHP, ASP

10

807

09.07.2009 16:22

Unlink

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

798

22.12.2007 18:25

Mir

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

prehrievanie ICH, MCH

v Chladiče a všetky druhy chladenia

6

481

03.09.2013 16:54

banzai

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

kde ich zohnat

v Pamäte

23

1484

22.05.2007 17:08

Jaro



© 2005 - 2025 PCforum, edited by JanoF