Kom ihåg mig?
Home Menu

Menu


Setup för databasen - ska spara många små värden

 
Ämnesverktyg Visningsalternativ
Gammal 2011-07-01, 14:47 #1
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Vad är det för databas server du använder?

Om du använder MySQL skulle jag rekommendera dig att använda MyISAM/InnoDB beroende på hur du anser på 'row locking' samt 'table locking'.

"Apparently MyISAM is faster than InnoDB. The only advantage InnoDB has over MyISAM is that it supports row locking, while MyISAM only supports table locking. Therefore, if lots of reads and writes are constantly being done to a very large table, it eliminates the constant database errors that using a MyISAM table would cause from the overload. InnoDB would therefore be a tad more reliable when you don't mind taking a small performance hit in exchange for not suffering from table locking issues."

http://www.daniweb.com/web-developme...900#post196900

Jag skulle dock ha använt mig av MyISAM, med antingen smallint, mediumint, float eller decimal på fältet som håller aktievärdet eftersom det borde inte vara så stort. Decimal kan vara bäst eftersom det är avsett för penga värden. Det avrundas dock. Men skulle ändå använda det eftersom det tar bort onödiga värden (såsom en upprepande nummerföljd). Float lär vara snabbare än decimal för att den använder en egen del i din processor. (http://lists.mysql.com/mysql/201704)

Du behöver också indexera de fält som du kommer använda när du söker efter resultat i tabellen.

Om du har en VPS eller dedikerad server skulle jag rekommendera dig till att implementera Memcache så att du kan spara resultaten i ram minnet (vilket går betydligt snabbare att hämta än att köra MySQL queries hela tiden.)
Om du bestämmer dig för att använda memcache skulle jag rekommendera dig att använda denna PHP class för att lätt implementera detta i din site.

http://www.phpclasses.org/package/35...e-servers.html

Senast redigerad av captaindoe den 2011-07-01 klockan 15:08
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Gammal 2011-07-03, 00:30 #2
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av captaindoe Visa inlägg
"Apparently MyISAM is faster than InnoDB. The only advantage InnoDB has over MyISAM is that it supports row locking, while MyISAM only supports table locking. Therefore, if lots of reads and writes are constantly being done to a very large table, it eliminates the constant database errors that using a MyISAM table would cause from the overload. InnoDB would therefore be a tad more reliable when you don't mind taking a small performance hit in exchange for not suffering from table locking issues."
Denna beskrivning är fel där den började. Skillnaderna är mycket större och vilken som är presterar bäst beror helt på databas och setup. Så länge du strukturerar dina writes och tabeller vettigt så behöver inte tabell-låsningen bli något problem med myisam i ditt usecase.

Det finns en mängd saker som skiljer de två tabelltyperna åt. Med en bra confad server som inte ligger nära 0% writes så är det innodb som kommer hantera last och datamängder mycket bättre än myisam. Det beror t ex på primärnyckels-klustring, buffer poolen, buffrade writes osv osv.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Gammal 2011-07-03, 13:45 #3
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Du tjänar ingenting alls på att slå ihop flera värden i en kolumn. Kör du MyISAM får du tvärtom stora prestandanackdelar då MyISAM är allra bäst när raderna har fast bredd. Dessutom är det hopplöst att ställa frågor mot datat eftersom SQL inte hanterar sådana sammanslagna typer speciellt bra.

Citat:
Ursprungligen postat av Clarence Visa inlägg
Med en bra confad server som inte ligger nära 0% writes så är det innodb som kommer hantera last och datamängder mycket bättre än myisam. Det beror t ex på primärnyckels-klustring, buffer poolen, buffrade writes osv osv.
För att inte tala om InnoDBs möjlighet att lätt sprida lasten mellan olika diskar (olika datafiler).
emilv är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:00.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017