vi er her !!!

02120

DifferentielGPS
home

MySQL

Vi var interesseret i at se, hvor megen data der kunne gemmes i vores datatabel. En indledende analyse viste det følgede:

[root@hooper root]# myisamchk -d -v /var/lib/mysql/dGPS/data.MYI

MyISAM file:         /var/lib/mysql/dGPS/data.MYI
Record format:       Packed
Character set:       latin1_swedish_ci (8)
File-version:        1
Creation time:       2005-04-18 14:42:22
Recover time:        2005-04-18 14:53:17
Status:              open,changed
Data records:              2593928  Deleted blocks:            824325
Datafile parts:            3897923  Deleted data:            60731228
Datafile pointer (bytes):        4  Keyfile pointer (bytes):        4
Datafile length:         271489832  Keyfile length:         168039424
Max datafile length:    4294967294  Max keyfile length: 4398046510079
Recordlength:                  323

table description:
Key Start Len Index   Type                     Rec/key         Root  Blocksize
1   7     4   multip. unsigned long                 14     12647424       1024
2   19    4   multip. long NULL                  48424     26873856       1024
3   43    8   multip. longlong NULL                  9     47569920       1024
4   67    255 multip. char packed stripped NULL     387392     56989696       2048

Som det kan se, så kan der maksimalt lagres omkring 4GB data. Det kunne rent umiddelbart synes som rimeligt meget, men en udregning viste, at dette kun svarer til seks kilder i otte dage.

Imidlertid viste den samme test af den tabel - kvalitet - der genereres under Anna's test, at den fik omkring 1,5TerraBytes stillet til rådighed. Det fik os til at undre. Vi forsøgte så i første omgang at se, hvad der skete, hvis man fjernede indekseringen. Men det gav ingen forbedring. Det næste, der prøvedes, var så at ændre formatet på feltet device fra varchar(255) til char(255). Og det gav pote. Vi har nu det følgende, hvilket burde være nok til de fleste formål. Man er i hvert fald nødt til at lave et heftigt raid for ikke at løbe tør for plads på harddisken førend man rammer hovedet imod den øvre grænse.

[root@hooper root]# myisamchk -d -v /var/lib/mysql/dGPS/data.MYI

MyISAM file:         /var/lib/mysql/dGPS/data.MYI
Record format:       Fixed length
Character set:       latin1_swedish_ci (8)
File-version:        1
Creation time:       2005-04-27 15:36:14
Recover time:        2005-04-27 15:58:54
Status:              checked,analyzed
Data records:              2593928  Deleted blocks:                 0
Datafile parts:            2593928  Deleted data:                   0
Datafile pointer (bytes):        4  Keyfile pointer (bytes):        3
Datafile length:         832650888  Keyfile length:          95304704
Max datafile length: 1378684502014  Max keyfile length:   17179868159
Recordlength:                  321

table description:
Key Start Len Index   Type                     Rec/key         Root  Blocksize
1   7     4   multip. unsigned long                 17     21146624       1024
2   19    4   multip. long NULL                  81060     44939264       1024
3   43    8   multip. longlong NULL                  9     79544320       1024
4   67    255 multip. char packed stripped NULL     432321     95302656       2048

Det specielle ved datatypen varchar er, at den kun benytter den nødvendige plads til teksten, medens char altid fylder den afsatte plads. Det er derfor 'gratis' at benytte varchar medens char koster ekstra i form af ubenyttet plads. For ydeligere at optimere pladsforbruget, overvejedes det derfor, hvor lange navnene på de enkelte enheder kunne forventes at ville kunne være, hvorefter device blev redefineret til char(32).


home