MySQL időrendi lekérdezés gyorsítása
Sziasztok,
Miben jobb a dátumot és az időt tárolni mysql -ben. TIMESTAMP vagy INT (unix time) formátumban. Melyikkel kapok gyorsabban eredméynt vissza, ha idő szerint rendezett listát akarok egy több (10-100) millió soros adatbázisban?
Logikusnak tűnne, ha az INT gyorsabb lenne, de lehet, hogy a datetime már eleve számként kerül letárolásra?
■ Miben jobb a dátumot és az időt tárolni mysql -ben. TIMESTAMP vagy INT (unix time) formátumban. Melyikkel kapok gyorsabban eredméynt vissza, ha idő szerint rendezett listát akarok egy több (10-100) millió soros adatbázisban?
Logikusnak tűnne, ha az INT gyorsabb lenne, de lehet, hogy a datetime már eleve számként kerül letárolásra?
http://dev.mysql.com/doc/refm
Nekem úgy tűnik, a timestamp és az általad említett "int" ugyanazt jelenti MySQL-ben.
Igen, timestam = Unix time
több mint 4 órát túrtam a doksikat, és ez az egy sor nem ütötte ki a szemem.
Köszönöm a linket. Gondolom a későbbi verzióknál is marad / mardt ez.
Indexek és tárolás
A four-byte integer packed as YYYY×10000 + MM×100 + DD
A four-byte integer packed as HH×10000 + MM×100 + SS
Ha pedig valamilyen INDEX van a mezőn, akkor teljesen mindegy, hogy milyen formában van tárolva (csak a beszúrások alkalmával).
Ennél a nagyságrendnél már
keresés
szűrt rendezett keresés
Az akarmire es az IDO re van közös kulcs téve. mert minden esetben az akarmi -hez rendelt adatokat kell időrendben kiolvasni (az utolsó x-et)
Ha még nem tetted volna meg,
a datetime -t nem javasolom
és piszok lassú volt.
Kiderült hogy a datetime index használatakor a mysql karakter konverziót csinál
így az indexet a nem használja
Üdv Robit
datetime ről állunk át TIMESTAMP -re
De szerencsére a doksiban benne van hogy a TIMESTAMP = UNIX TIME.
TIMESTAMP: A four-byte integer representing seconds UTC since the epoch ('1970-01-01 00:00:00' UTC)
köszönöm