Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Databaze Mysql 2 milionu zaznamu

Zdravim, predem se omlouvam za diakritiku, nemam ceskou klavesnici.

Chtel bych se zeptat ohledne rychlosti MySql a dalsich databazi.
Mam 2 miliony zaznamu, coz je databaze geolokace podle ip adressy.

Mysql dotaz:
[pre]select * from geoLocation_blocks WHERE INET_ATON('5.5.5.5') BETWEEN startIpNum AND endIpNum LIMIT 1;[/pre]
1 row in set (1.25 sec)

Struktura tabulky
[ startIP (int 10 UNSIGNED) | endIP (int 10 UNSIGNED) | oblast (int 6 UNSIGNED)]

Nejde to jeste zrychlit? :) Nebo po tom chci moc? :P
Popripade bych si nechal doporucit jinou (rychlejsi) databazi. Ale obavam se ze pro tento dotaz uz moc rychlejsi nebude.

Dekuji predem za rady.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Hledáš nějaký interval IP (start-end), ale výsledek omezíš jen na jeden záznam (LIMIT 1). To jsem ne…
host 22.05.2013 23:46
host
Ano, jelikoz rozsahu v IP adresse odpovida prave jedno konkretni misto. (Oblast)
ManJava 23.05.2013 13:03
ManJava
Kdyby rozsahu odpovídalo jen jedno místo, nemusel bys SELECT omezovat LIMITem. :i: poslední
host 23.05.2013 22:43
host
Predpokladam, ze minimalne na StartIP je definovany clusterovany index (doufam, ze mySQL clusterovan…
Jan Fiala 23.05.2013 14:04
Jan Fiala
něco mi uniká nebo clusterovany index je v tom mssql co používáš něco jiného než v oracle?
AZOR 23.05.2013 15:03
AZOR
clusterovany index je vsade to iste a teda to, ze podla daneho indexu su aj zaznamy realne zoradene. nový
wam_Spider007 23.05.2013 15:54
wam_Spider007
Presne tak. A pokud se podle toho pole vetsinou vybira, ma tam ten index smysl - je vykonove rychlej… nový
Jan Fiala 23.05.2013 15:57
Jan Fiala
Už jsem zagooglil. Pravda je taková, že slovo "cluster" u Oracle je ale je to něco jiného - kombinac… nový
AZOR 23.05.2013 16:17
AZOR
Ono to nebude od Cluster, ale od clustering, pripadne clustered Ve svete MS SQL je to property index… nový
Jan Fiala 23.05.2013 18:43
Jan Fiala
Ok, diky - nevěděl jsem právě co to je, tak se ptám. Když tomu říkají v každé DB jinak je to složité… nový
AZOR 23.05.2013 19:46
AZOR

Už jsem zagooglil. Pravda je taková, že slovo "cluster" u Oracle je ale je to něco jiného - kombinace jedné (respektive 2, ale i více tabulek), kde na join sloupci jsou společně uloženy v stejnejch blocích. Proto mi to nedávalo smysl, neb dotaz je jen z jedné tabulky.

Co se týče seřazených záznamů, tak rozumím, jen my tomu u Oracle neříkáme clustered (a nevidim důvod, proč by se to tak mělo jmenovat (cluster = svazek)), ale IOT - indexově orientované tabulky,(co googlim není to uplně to samé, ale je to podobné). A v tom případě OK, IOT ano.

Ok, diky - nevěděl jsem právě co to je, tak se ptám. Když tomu říkají v každé DB jinak je to složité.

Pro tento konkretni pripad bych to udelal pouze na prvni sloupec, ne na oba.

Nedokážu bez dat říci, ale souhlasím - zrychlí se to, protože když bere jeden řádek z 2millionu a jsou tam uloženy IP tak index to pošle řádově dolu - vyběr konkrétního se už pak bude pohybovat jen v násobncích času, maximálně (pokud ho vysloveně nepokurví). Naprostý souhlas.

Zpět do poradny Odpovědět na původní otázku Nahoru