Hej, jag tänkte göra en aktiedatabas med alla aktier från nasdaq, och undrar vilken struktur man ska ha på databasen för att få bästa prestanda. Det handlar om ca 4000 akiter med ca 1000 rader för varje aktie, allt som allt ca 4 miljoner rader. Testade först att lägga alla i en och samma tabell men förstårligt så går det väldigt sakta. Så jag antar att jag måste dela upp datan i olika tabeller. Vilket alternativ är bäst ?? <b>allt som allt ca 4 miljoner rader. Testade först att lägga alla i en och samma tabell men förstårligt så går det väldigt sakta.</b> Antagligen bör du dela informationen i mindre bitar enligt modellen order / orderrader. Hej igen, Du borde kanske kunna bryta isär detta till tre tabeller. Jag skulle bryta upp det på två tabeller:Typ av struktur
25 tabeller (A-Z): Alla aktier som börjar på A i tabell A, alla akter på B i tabell B osv.
625 tabeller (AA,AB,AC...BA,BB,BC): Alla aktier som börjar på AA i tabell AA osv
4000 tabeller: En tabell för varje aktie.
Någon som har något förslag. Kanske finns det ett bättre förslag. Kan inte så mycket om databaser, men jag antar att man kan indexera databarser för bättre prestanda ? Jag kör MYSQL och Coldfusion MX som backbone till en Flash application
mvh
RobinSv: Typ av struktur
Så långsamt borde det inte gå? Vilken typ av sökning gör du? Hur du index som används? Du "måste" ha alla poster i samma tabell, annars kommer det bli riktigt jobbigt att hantera!
/JohanSv: Typ av struktur
Kan du ge oss information om vilka kolumner som finns och kanske lite testdata så blir det enklare att hjälpa dig.Sv: Typ av struktur
Som sagt, ca 4 miljoner rader ett exempel på en rad:
Symbol: ABB
Date: 2003-09-27
Open: 23.233
Close 22.341
High: 24.322
Low: 21.334
Volume: 5322111
Det är ca 4000 aktier så varje sökning söker på symbol namn och plockar tillbaka ca 1000 rader av detta data. Jag kommer att varje dag addera en rad för varje aktie, med gårdagens uppgifter.
Vet inte riktigt hur indexering fungerar. Går det eftersom jag uppdaterar databasen varje dag. Om, hur gör man en indexering ?
Jag tror inte det blir så jobbigt att hantera det om jag har fler tabeller. Klart är en stor tabell att föredra, men bara om prestandan är lika bra.
MVH
RobinSv: Typ av struktur
En för företagsnamnet, en för datum och en för resterande.
Tabell1: IDCompany, CompanyName
Tabell2: IDDate, Date (Ordet Date är säkert ett reserverat ord, välj annat isåfall)
Tabell3: IDCompany, IDDate, Open, Close, High, Low, Volume
Tabell1 lagrar företagsinfo.
Tabell2 lagrar datum
Tabell3 lagrar aktiedata relaterade till Tabell1 och 2.
Någonting detta är kanske en bra början.Sv: Typ av struktur
cmp_company
cmp_id (counter, primary key)
cmp_name (varchar 50)
shr_shares
cmp_id (int, primary key)
shr_date (datetime, primary key)
shr_open (currency)
shr_close (currency)
shr_high (currency)
shr_low (currency)
shr_volume (int)
Detta innebär att du kan bara lägga till en aktie till ett företag för ett datum.
Sedan skulle jag sätta index baserat på hur jag söker och index fungerar som så att när du lägger in data i tabellen så sorteras datat i de fält du har ett index satt på redan när datat läggs till. En tidigare talare ville lägga in datum i en egen tabell vilket iofs inte är helt fel tänkt om man tänker i termer av datamängd men det blir lite galet om man tänker på prestanda enligt min mening.