Avatar billede Slettet bruger
17. november 2006 - 16:47 Der er 20 kommentarer og
1 løsning

Hvilken data type myISAM eller innoDB

Hvilken datatype i mysql  bør man bruge og hvorfor ??

innoDB eller myISAM eller andre????
Avatar billede arne_v Ekspert
17. november 2006 - 17:18 #1
Hvis behov for transaktioner saa vaelg InnoDB ellers MyISAM.

MyISAM understoetter ikke transaktioner.

I de fleste tilfaelde er MyISAM hurtigere end InnoDB.
Avatar billede Slettet bruger
17. november 2006 - 17:31 #2
hvad betyder transaktioner i denne sammenhæng?..pengeoverførsel..med visakort?
Avatar billede Slettet bruger
17. november 2006 - 17:33 #3
..hvorfor skal InnoDb bruges ved transaktioner?
Avatar billede arne_v Ekspert
17. november 2006 - 17:54 #4
jeg snakker om database transaktioner

hvis du laver

UPDATE konto SET saldo=saldo-100 WHERE kontonr=1777
UPDATE konto SET saldo=saldo+100 WHERE kontonr=1778

saa er det ret kritisk at enten udfoers de begge eller saa udfoeres ingen af dem

det kan database transaktioner sikre

MyISAM understoetter ikke transaktioner saa MyISAM kan ikke bruges til den slags
Avatar billede fsconsult.dk Nybegynder
17. november 2006 - 18:07 #5
InnoDB skal også bruges hvis du har brug for database constraints!
Avatar billede Slettet bruger
17. november 2006 - 18:17 #6
...øv jeg kan ikke forstå hverken hvad transaktioner eller constraints er?..
Avatar billede arne_v Ekspert
17. november 2006 - 18:22 #7
det er rigtigt at kun InnoDB understoetter foreign keys

men det kan man normalt kode sig uden om - transaktioner er svaere at kode sig uden om
Avatar billede arne_v Ekspert
17. november 2006 - 18:23 #8
hvis ikke du forstaar hvad transaktioner saa har du sikkert ikke brug for dem !
Avatar billede fixxxer Nybegynder
17. november 2006 - 18:25 #9
Transactions bruges til at sikre, at hvis der tale om en serie af queries der er afhængige af hinnanden, som fx en pengeoverførelse mellem to konti (eller pointoverførelse mellem to brugerkonti ala eksperten) går godt begge steder, som arne's eksempel 17:54:01

Hvis den ene skulle fejle af en eller anden grund, så bliver der ikke, i mit eksempel, trukket point  fra eller lagt point til, for nogen af de indvoldverede parter.
Avatar billede fixxxer Nybegynder
17. november 2006 - 18:26 #10
arne_v > Jeg tænker at han spørger af nysgerighed - for jeg tænkte netop det samme :)
Avatar billede Slettet bruger
17. november 2006 - 18:29 #11
..jo jeg tror netop jeg har brug for dem....jeg har bare tidligere gået ud fra at alle queries blev udført...men jeg kan godt se der kan opstå problemer hvis de ikke kan garenteres ....


så jo jeg har brug for dem

fandt denne artikkel hvis andre får brug for det
http://www.phpbuilder.com/columns/tim20010117.php3?page=1
Avatar billede arne_v Ekspert
17. november 2006 - 18:56 #12
Normalt vil alle SQL saetninger jo ogsaa blive udfoert, men alt kan jo ske.

Rengoerings konen slukker for database serveren efter at den foerste saetning
er udfoert og foer den anden saetning er udfoert.
Avatar billede arne_v Ekspert
17. november 2006 - 18:59 #13
naar du kommer lidt videre med transaktioner saa stoeder du paa begrebet
transaction isolation level som drejer sig om hvad der sker naar 2 transaktioner
koerer samtidigt og accesser de samme data

der er nogle muligheder for at sikre dig mod at de generer hinanden
Avatar billede arne_v Ekspert
17. november 2006 - 18:59 #14
Avatar billede Slettet bruger
17. november 2006 - 20:09 #15
det var en fin artikel..tak arne

phps  mysql_insert_id(); er det også pr connection lige som LAST_INSERT_ID()
Avatar billede b_ Nybegynder
17. november 2006 - 20:17 #16
Ja man kan altid kode sig uden om fremmednøgler, men er det ikke god databaseskik altid at normalisere?

<offtopic>
Forstår ikke at det lige var MySQL der slog igennem hos webhotellerne. Firebird er hurtigere og muligheden for transaktioner og constraints blev først meget senere implementeret i MySQL.
</offtopic>
Avatar billede arne_v Ekspert
17. november 2006 - 20:18 #17
PHP mysql_insert_id() er ogsaa per connection
Avatar billede arne_v Ekspert
17. november 2006 - 20:19 #18
man kan vel godt normalisere selvom ens database ikke enforcer foreign key constraints
Avatar billede arne_v Ekspert
17. november 2006 - 20:20 #19
MySQL har vaeret ret gode til at markedsfoere sig selv - meget bedre end
Firebird og PostgreSQL

jeg synes faktisk at nyere MySQL versioner er OK, men tilbage i version 3 manglede
der ligesom nogle ting
Avatar billede Slettet bruger
19. november 2006 - 16:53 #20
lad os lukke tak for hjælpen

..læg svar
Avatar billede arne_v Ekspert
19. november 2006 - 17:47 #21
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester