Tom: Wie speichert MySQL?

Beitrag lesen

Hello Ihr Spezialisten,

nun habe ich das mal zusammengefasst als Beweis für das Verhalten von 3.23.55-max eingefangen...

Satzformat:
ID_FARBE     bigint(3)unsigned
FARB_NAME    varchar(20)

testserver:/var/mysql/data/thomass# hexdump -C FARBE.MYD
00000000  fd 01 00 00 00 00 00 00  00 52 6f 74 20 20 20 20  |.........Rot    |
00000010  20 20 20 20 20 20 20 20  20 20 20 20 20 fd 02 00  |             ...|
00000020  00 00 00 00 00 00 47 65  6c 62 20 20 20 20 20 20  |......Gelb      |
00000030  20 20 20 20 20 20 20 20  20 20 fd 03 00 00 00 00  |          ......|
00000040  00 00 00 47 72 fc 6e 20  20 20 20 20 20 20 20 20  |...Gr.n         |
00000050  20 20 20 20 20 20 20 fd  04 00 00 00 00 00 00 00  |       .........|
00000060  42 6c 61 75 20 20 20 20  20 20 20 20 20 20 20 20  |Blau            |
00000070  20 20 20 20 fd 05 00 00  00 00 00 00 00 56 69 6f  |    .........Vio|
00000080  6c 65 74 74 20 20 20 20  20 20 20 20 20 20 20 20  |lett            |
00000090  20 fd 06 00 00 00 00 00  00 00 57 65 69 df 20 20  | .........Wei.  |
000000a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 fd 07  |              ..|
000000b0  00 00 00 00 00 00 00 53  63 68 77 61 72 7a 20 20  |.......Schwarz  |
000000c0  20 20 20 20 20 20 20 20  20 20 20 fd 08 00 00 00  |           .....|
000000d0  00 00 00 00 53 69 6c 62  65 72 20 20 20 20 20 20  |....Silber      |
000000e0  20 20 20 20 20 20 20 20  fd 09 00 00 00 00 00 00  |        ........|
000000f0  00 47 6f 6c 64 20 20 20  20 20 20 20 20 20 20 20  |.Gold           |
00000100  20 20 20 20 20 fd ff 00  00 00 00 00 00 00 46 61  |     .........Fa|
00000110  72 62 6c 6f 73 20 20 20  20 20 20 20 20 20 20 20  |rblos           |
00000120  20 20                                             |  |
00000122

Sichtbar ist hier, dass es sich um eine festes Satzformat handelt, was durch die kennung "fd" vor jedem Datensatz angezeigt wird

Dann Änderung durchgeführt auf

Satzformat:
ID_FARBE     bigint(3)unsigned
FARB_NAME    varchar(20)
BEM          varchar(35)

testserver:/var/mysql/data/thomass# hexdump -C FARBE.MYD
00000000  03 00 0f 01 06 fe 01 00  00 00 00 00 00 00 03 52  |...............R|
00000010  6f 74 00 00 03 00 10 00  06 fe 02 00 00 00 00 00  |ot..............|
00000020  00 00 04 47 65 6c 62 00  03 00 10 00 06 fe 03 00  |...Gelb.........|
00000030  00 00 00 00 00 00 04 47  72 fc 6e 00 03 00 10 00  |.......Gr.n.....|
00000040  06 fe 04 00 00 00 00 00  00 00 04 42 6c 61 75 00  |...........Blau.|
00000050  03 00 13 01 06 fe 05 00  00 00 00 00 00 00 07 56  |...............V|
00000060  69 6f 6c 65 74 74 00 00  03 00 10 00 06 fe 06 00  |iolett..........|
00000070  00 00 00 00 00 00 04 57  65 69 df 00 03 00 13 01  |.......Wei......|
00000080  06 fe 07 00 00 00 00 00  00 00 07 53 63 68 77 61  |...........Schwa|
00000090  72 7a 00 00 03 00 12 02  06 fe 08 00 00 00 00 00  |rz..............|
000000a0  00 00 06 53 69 6c 62 65  72 00 00 00 03 00 10 00  |...Silber.......|
000000b0  06 fe 09 00 00 00 00 00  00 00 04 47 6f 6c 64 00  |...........Gold.|
000000c0  03 00 13 01 06 fe ff 00  00 00 00 00 00 00 07 46  |...............F|
000000d0  61 72 62 6c 6f 73 00 00                           |arblos..|
000000d8

Hier ersichtlich, dass jeder Datensatz mit 0x03 beginnt. Varchar-Felder werden rechtsbündig angeordnet. Reserve-Space wird mit 0x00 aufgefüllt. Es sind noch KEINE Daten in der Spalte BEM vorhanden!

Und ein paar Daten in BEM eingetragen

testserver:/var/mysql/data/thomass# hexdump -C FARBE.MYD
00000000  05 00 1c 00 07 00 00 00  00 00 00 00 d8 06 fc 01  |................|
00000010  00 00 00 00 05 00 32 00  07 00 00 00 00 00 00 00  |......2.........|
00000020  f0 02 fc 02 00 00 00 00  03 00 10 00 06 fe 03 00  |................|
00000030  00 00 00 00 00 00 04 47  72 fc 6e 00 03 00 10 00  |.......Gr.n.....|
00000040  06 fe 04 00 00 00 00 00  00 00 04 42 6c 61 75 00  |...........Blau.|
00000050  03 00 13 01 06 fe 05 00  00 00 00 00 00 00 07 56  |...............V|
00000060  69 6f 6c 65 74 74 00 00  03 00 10 00 06 fe 06 00  |iolett..........|
00000070  00 00 00 00 00 00 04 57  65 69 df 00 03 00 13 01  |.......Wei......|
00000080  06 fe 07 00 00 00 00 00  00 00 07 53 63 68 77 61  |...........Schwa|
00000090  72 7a 00 00 03 00 12 02  06 fe 08 00 00 00 00 00  |rz..............|
000000a0  00 00 06 53 69 6c 62 65  72 00 00 00 03 00 10 00  |...Silber.......|
000000b0  06 fe 09 00 00 00 00 00  00 00 04 47 6f 6c 64 00  |...........Gold.|
000000c0  03 00 13 01 06 fe ff 00  00 00 00 00 00 00 07 46  |...............F|
000000d0  61 72 62 6c 6f 73 00 00  07 00 15 00 00 00 03 52  |arblos.........R|
000000e0  6f 74 0d 4d 61 67 20 69  63 68 20 6e 69 63 68 74  |ot.Mag ich nicht|
000000f0  0b 00 21 00 00 00 00 00  00 01 1c 00 00 00 04 47  |..!............G|
00000100  65 6c 62 49 73 74 20 6b  61 75 6d 20 73 69 63 68  |elbIst kaum sich|
00000110  74 62 61 72 20 75 6e 64  20 7a 75 20 09 00 0a 06  |tbar und zu ....|
00000120  6c 61 6e 67 20 66 fc 72  20 64 00 00 00 00 00 00  |lang f.r d......|
00000130

+----------+-----------+-------------------------------------+
| ID_FARBE | FARB_NAME | BEM                                 |
+----------+-----------+-------------------------------------+
|        1 | Rot       | Mag ich nicht                       |
|        2 | Gelb      | Ist kaum sichtbar und zu lang für d |
|        3 | Grün      | NULL                                |
|        4 | Blau      | NULL                                |
|        5 | Violett   | NULL                                |
|        6 | Weiß      | NULL                                |
|        7 | Schwarz   | NULL                                |
|        8 | Silber    | NULL                                |
|        9 | Gold      | NULL                                |
|      255 | Farblos   | NULL                                |
+----------+-----------+-------------------------------------+

Nun bin ich aber gespannt auf Eure Erläuterungen.
Sieht ja so aus, als würde jedes Feld in einer eigenen Seite dargestellt.

Dateiformat ist übrigens MyISAM, sollte man ja dazu sagen. ;-)

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau