Avatar billede ettol Nybegynder
23. november 2003 - 11:14 Der er 13 kommentarer og
1 løsning

Databaseord jeg gerne vil have betydningen af

Jeg sidder og prøver at sætte mig ind i MySQL - især InnoDB - men støder på ord jeg ikke helt forstår.

* Page
* Tablespace - og hvordan bruger InnoDB det til at isolere forskellige transaktioner fra hinanden
* Phantom
* De fire isolations niveauer har jeg svært ved at skelne, især de to sidste, men det er nok fordi jeg ikke rigtig forstår phantom
* Index - og er der forskellige grader

Hvis der er nogen der kan forklare mig hvad det betyder ville det bare være dejligt
Avatar billede arne_v Ekspert
23. november 2003 - 11:55 #1
For tranacytion  isolation level se:
  http://www.iona.com/support/docs/e2a/asp/5.0/j2ee/DevelopGuide/html/Jta-Bas5.html

(ignorer det sidste om IONA J2EE app-server)
Avatar billede arne_v Ekspert
23. november 2003 - 11:56 #2
page = den fysiske enhed som databasen skriver og læser tl og fra disk.

Typisk 2 KB, 4 KB, 8 KB, 16 KB ...
Avatar billede arne_v Ekspert
23. november 2003 - 11:57 #3
Index er noget man kan sætte på et felt (eller flere felter) så man hurtigt
kan finde værdier.

Der er altid implicit index på primær nøgle.

Det betyder meget for hastigheden.
Avatar billede arne_v Ekspert
23. november 2003 - 11:57 #4
phantom : se transaction isolation level link
Avatar billede arne_v Ekspert
23. november 2003 - 11:58 #5
tablespace = plads afsat til tabeller
Avatar billede arne_v Ekspert
23. november 2003 - 11:58 #6
OK ?
Avatar billede ettol Nybegynder
23. november 2003 - 14:05 #7
øv mit net har lige været nede...

page - det er vel så forskelligt om en række/tabel kan fylde mindre eller mere end en page, sådan så at en række/tabel kan fylde flere pages eller at flere pages kan være i en række/tabel?

men kan du ikke uddybe tablespace lidt, jeg syntes de (mysql.com) skriver noget om at hver bruger får sit egen snapshot af de rækker han han skal bruge, og alle disse ligger i tablespace...?
Avatar billede arne_v Ekspert
23. november 2003 - 14:12 #8
Medmindre der er meget få records i en tabel, så vil en tabel fylde
mange pages.

En del database har en restriktion at en record minus de felter
som kan være meget store (BLOB & CLOB) skal kunne være være i en
page.

Jeg ved ikke om det gælder MySQL InnoDB - nærlæs dokumentationen.
Avatar billede arne_v Ekspert
23. november 2003 - 14:13 #9
(CLOB hedder TEXT, MEDIUMTEXT og LONGTEXT i MySQL)
Avatar billede arne_v Ekspert
23. november 2003 - 14:15 #10
Lidt læsning af docs viser at InnoDB pages er 16 KB.
Avatar billede arne_v Ekspert
23. november 2003 - 14:16 #11
http://www.mysql.com/doc/en/InnoDB_File_space.html siger:

The datafiles you define in the configuration file form the tablespace of InnoDB. The files are simply catenated to form the tablespace, there is no striping in use. Currently you cannot define where in the tablespace your tables will be allocated. However, in a newly created tablespace, InnoDB will allocate space starting from the low end.
Avatar billede ettol Nybegynder
23. november 2003 - 15:21 #12
lige en sidste ting

Kan det passe at hver bruger får en 'arbejdskopi' af det nødvendige som så findes i tablespace - eller muligvis et andet sted?
Avatar billede arne_v Ekspert
23. november 2003 - 15:25 #13
Der laves ikke kopier af alle data.

For at få transaction isolation til at virke kan databasen blive
nødt til at have visse data i flere kopier. De vil normalt ligge
i loggen.
Avatar billede arne_v Ekspert
23. november 2003 - 15:25 #14
(database log != traditionel applikations log)
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