|
| filer i en mysql database Fra : Henrik Absalon |
Dato : 13-02-05 20:51 |
|
Hejsa
Sidder lige og kigger på en sql database, hvad er forskellen på MYI, MYD og
FRM filer?
Mvh Henrik
| |
Peter Brodersen (13-02-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 13-02-05 21:45 |
|
On Sun, 13 Feb 2005 20:51:17 +0100, "Henrik Absalon" <absalon@it.dk>
wrote:
>Sidder lige og kigger på en sql database, hvad er forskellen på MYI, MYD og
>FRM filer?
For MyISAM bruges følgende filtyper:
..FRM-filen rummer struktur/definition. Den indeholder informationer om
hvilke felter, nøgler, m.m., tabellen indeholder, men ikke noget om
selve indholdet.
..MYI-filen er en index-fil. Indekserede felter ligger i en på forhånd
sorteret udgave i denne fil.
..MYD-filen er selve datafilen, hvor al data i tabellen ligger i.
Index-filen kan altid genskabes ud fra data- og definition-filen. Ved
SQL-opslag, der kun henviser til felter, der kan trækkes ud af
index-filen, bliver datafilen ikke brugt.
--
- Peter Brodersen
| |
Peter Brodersen (13-02-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 13-02-05 21:47 |
|
On Sun, 13 Feb 2005 21:44:53 +0100, Peter Brodersen
<usenet2005@ter.dk> wrote:
>>Sidder lige og kigger på en sql database, hvad er forskellen på MYI, MYD og
>>FRM filer?
>
>For MyISAM bruges følgende filtyper:
... og det er vel at mærke på tabelniveau, at der er de par filer. En
HEAP-tabel rummer for eksempel kun en .FRM-fil, idet selve dataen
gemmes i hukommelsen (og ikke skrives til disken).
--
- Peter Brodersen
| |
Henrik Absalon (13-02-2005)
| Kommentar Fra : Henrik Absalon |
Dato : 13-02-05 22:50 |
|
Tak for svarende, det giver andledning til en række nye spørgsmål.
1. Jeg kan se at der også er et "sæt" der hedder ISM, ISD og FRM hvad
betyder de så?
2. Kan man se om der er oprettet nogle "HEAP" tabeler på
computeren(serveren)?
Grunden til at jeg prøver at sætte mig lidt ind i databasen er fordi jeg har
en mysql (V. 3.32.32) database med fejl på, og jeg er lidt på bar bund
Henrik
| |
Peter Brodersen (13-02-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 13-02-05 23:41 |
|
On Sun, 13 Feb 2005 22:50:06 +0100, "Henrik Absalon" <absalon@it.dk>
wrote:
>Tak for svarende, det giver andledning til en række nye spørgsmål.
>
>1. Jeg kan se at der også er et "sæt" der hedder ISM, ISD og FRM hvad
>betyder de så?
Det er tabeller oprettet i ISAM-formatet (de øvrige var i
MyISAM-format). MyISAM blev introduceret med MySQL 3.23. ISAM-formatet
blev brugt ældre udgaver af MySQL, og er ganske forældet.
FRM er vist fælles for alle tabeltyper under MySQL. Definitionen
indeholder også hvilken tabeltype, der er tale om.
>2. Kan man se om der er oprettet nogle "HEAP" tabeler på
>computeren(serveren)?
I så fald vil der kun være en FRM-fil.
>Grunden til at jeg prøver at sætte mig lidt ind i databasen er fordi jeg har
>en mysql (V. 3.32.32) database med fejl på, og jeg er lidt på bar bund
Jeg går ud fra, at du mener 3.22 og ikke 3.32. Men det er rigtigt nok
en temmeligt gammel udgave.
3.23 giver bl.a. mulighed for kommandoen "show table status", der
netop fortæller hvad hver enkelt tabel i databasen er i for et format.
En mulighed, du dog har, burde være at bruge mysqldump-funktionen -
eventuel med option'en --no-data - for at se create-statementet for de
enkelte tabeller. Det kan måske hjælpe dig med at få et overblik.
Hvilken fejl er det, du støder ind i - får du nogen fejlmeddelelse? En
fejl, der jævnligt forekom i ISAM-tiden, var at indexet "gik itu". Du
kan bruge funktionen isamchk for at reparere ISAM-filer, og
tilsvarende funktionen myisamchk for MyISAM-filer.
For eksempel:
isamchk -r tabelnavn
myisamchk -r andettabelnavn
--
- Peter Brodersen
| |
Henrik Absalon (14-02-2005)
| Kommentar Fra : Henrik Absalon |
Dato : 14-02-05 05:42 |
|
Ja, undskyld jeg mente 3.23.32
Det kunne godt tænkes at databasen er oprettet i en ældre version af mysql,
og så opgraderet til 3.23.32.
Jeg har prøvet at køre "myisamchk --check eksempel.MYI" ude fra dos, men jeg
syntes kun at det virker på MYI filerne, kan jeg ikke kontroler de andre
filer?
Henrik
| |
Peter Brodersen (14-02-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 14-02-05 06:42 |
|
On Mon, 14 Feb 2005 05:42:24 +0100, "Henrik Absalon" <absalon@it.dk>
wrote:
>Ja, undskyld jeg mente 3.23.32
Så har du en stor fordel, idet du kan køre følgende kommando:
show table status
Den vil give dig overblik over alle dine tabeller i en database, samt
hvilken tabel-type, der er tale om.
>Det kunne godt tænkes at databasen er oprettet i en ældre version af mysql,
>og så opgraderet til 3.23.32.
>Jeg har prøvet at køre "myisamchk --check eksempel.MYI" ude fra dos, men jeg
>syntes kun at det virker på MYI filerne, kan jeg ikke kontroler de andre
>filer?
Det "plejer" at være index-filen, der kan give problemer i strukturen,
så det er blot dens integritet, der tjekkes.
Men hvilken fejl oplever du mere konkret? Får du nogen fejlmeddelelse?
--
- Peter Brodersen
| |
Henrik Absalon (14-02-2005)
| Kommentar Fra : Henrik Absalon |
Dato : 14-02-05 10:23 |
|
Jeg har 2 problemer med databasen.
1. Der er en tabel med vare, hvor man fra bruger programmet, kan oprette
vare, trække vare ud og ind, samt slette vare. Men der er en enkelt vare i
tabelen som jeg ikke kan trække vare fra eller skrive vare til, og jeg kan
heller ikke slette varen.
2. Den anden fejl er lidt mere underlig, det er noget med at: hvis en person
betaler nogle penge som personen skylder, så skal beløbet komme med ud på
dags-rapporten, det gør beløbet ikke, med mindre at der har været andet
kontant salg den dag.
(databasen bliver brugt i forbindelse med et motionscenter, til at styre alt
salg samt styring af hold og medlemsskaber)
Henrik
"Peter Brodersen" <usenet2005@ter.dk> skrev i en meddelelse
news:cupdmt$sst$1@news.klen.dk...
> On Mon, 14 Feb 2005 05:42:24 +0100, "Henrik Absalon" <absalon@it.dk>
> wrote:
>
>>Ja, undskyld jeg mente 3.23.32
>
> Så har du en stor fordel, idet du kan køre følgende kommando:
> show table status
>
> Den vil give dig overblik over alle dine tabeller i en database, samt
> hvilken tabel-type, der er tale om.
>
>>Det kunne godt tænkes at databasen er oprettet i en ældre version af
>>mysql,
>>og så opgraderet til 3.23.32.
>>Jeg har prøvet at køre "myisamchk --check eksempel.MYI" ude fra dos, men
>>jeg
>>syntes kun at det virker på MYI filerne, kan jeg ikke kontroler de andre
>>filer?
>
> Det "plejer" at være index-filen, der kan give problemer i strukturen,
> så det er blot dens integritet, der tjekkes.
>
> Men hvilken fejl oplever du mere konkret? Får du nogen fejlmeddelelse?
>
> --
> - Peter Brodersen
| |
Peter Brodersen (14-02-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 14-02-05 10:35 |
|
On Mon, 14 Feb 2005 10:22:51 +0100, "Henrik Absalon" <absalon@it.dk>
wrote:
>1. Der er en tabel med vare, hvor man fra bruger programmet, kan oprette
>vare, trække vare ud og ind, samt slette vare. Men der er en enkelt vare i
>tabelen som jeg ikke kan trække vare fra eller skrive vare til, og jeg kan
>heller ikke slette varen.
Hvad sker der, når du forsøger at slette varen? Og forsøger du at
slette den igennem et web-interface, eller direkte i databasen? (i
sidstnævnte tilfælde, hvilken fejl opstår så?)
>2. Den anden fejl er lidt mere underlig, det er noget med at: hvis en person
>betaler nogle penge som personen skylder, så skal beløbet komme med ud på
>dags-rapporten, det gør beløbet ikke, med mindre at der har været andet
>kontant salg den dag.
Hm, det synes jeg snarere lyder som et problem i applikationen end i
databasen.
--
- Peter Brodersen
| |
Henrik Absalon (14-02-2005)
| Kommentar Fra : Henrik Absalon |
Dato : 14-02-05 11:39 |
|
> Hvad sker der, når du forsøger at slette varen? Og forsøger du at
> slette den igennem et web-interface, eller direkte i databasen? (i
> sidstnævnte tilfælde, hvilken fejl opstår så?)
Det er et windows program der bruger databasen, jeg skal ned i
motionscenteret en gang i denne uge, så vil jeg lige prøve at se hvad den
skriver af fejl, jeg har ikke forsøgt at slette varen direkte i databasen.
> Hm, det synes jeg snarere lyder som et problem i applikationen end i
> databasen.
Personen der tildaglig bruger programmet, siger at problemet først kom efter
at serveren med databsaen blev "lukket ned" af et lyn nedslag.
næste gang jeg kommer ned i centeret vil jeg lige prøve at køre en
check/reparer på databasen (den database som jeg har kigget på er en kopi
som jeg har taget med hjem).
Henrik
| |
|
|