~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to plugin/myisam/NEWS

  • Committer: Bazaar Package Importer
  • Author(s): Monty Taylor
  • Date: 2010-10-02 14:17:48 UTC
  • mfrom: (1.1.1 upstream)
  • mto: (2.1.17 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20101002141748-m6vbfbfjhrw1153e
Tags: 2010.09.1802-1
* New upstream release.
* Removed pid-file argument hack.
* Updated GPL-2 address to be new address.
* Directly copy in drizzledump.1 since debian doesn't have sphinx 1.0 yet.
* Link to jquery from libjs-jquery. Add it as a depend.
* Add drizzled.8 symlink to the install files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
New features compared to NISAM:
2
 
 
3
 
- All file positions have type my_off_t;  This enables one to use big
4
 
  files (2^63 byte) by defining my_off_t to be longlong on OS that supports
5
 
  big files.
6
 
- When creating a table, one can now specify the maximum data file length.
7
 
  This will be used to calculate the length of row pointers.
8
 
- All key segments have their own language definition.
9
 
- Some changes to support more types:
10
 
  The biggest change is that the interface allows MY_ISAM will support
11
 
  variable length integer types. (Only the interface is implemented)
12
 
- All data is stored with low byte first;  This makes the data machine
13
 
  independent.
14
 
- All number keys are stored with high byte first to give better packing.
15
 
- Support for a true VARCHAR type;  A VARCHAR column starts with a length
16
 
  stored on 2 bytes.
17
 
- Tables with VARCHAR may have fixed or dynamic record length.
18
 
- There are now 2 different ways to pack keys:
19
 
  - If the first key part is a space stripped CHAR, a VARCHAR or a BLOB the
20
 
    'packed' method is used.  This only prefix-compresses the first
21
 
    key part.
22
 
  - In other cases prefix packing is used (This also includes the record
23
 
    pointer into the prefix packing).  A key may in the best case be
24
 
    packed on 2 bytes.
25
 
- VARCHAR and CHAR may be up to 65K
26
 
- Index on BLOB and VARCHAR.
27
 
- One can now have NULL in an index.  This takes 0-1 bytes / key.
28
 
- MYISAM will allow one to specify one AUTO_INCREMENT column;  MYISAM will
29
 
  automaticly update this on INSERT/UPDATE. The AUTO_INCREMENT value can be
30
 
  reset with myisamchk.
31
 
- Max key length will be 500 by default;  In cases of longer keys than 250,
32
 
  a bigger key block size than the default of 1024 byes is used for this key.
33
 
- Max number of keys enlarged to 32 as default. This can be enlarged to 64
34
 
  without having to recompile myisamchk.
35
 
- There is a flag in the MYISAM header that tells if the index file (.MYI)
36
 
  was closed correctly.
37
 
- myisamchk will now mark tables as checked. 'myisamchk --fast' will only
38
 
  check those tables that doesn't have this mark.
39
 
- 'myisamchk -a' stores statistic for key parts (and not only for whole keys
40
 
   as in NISAM).
41
 
- Dynamic size rows will now be much less fragmented when mixing deletes with
42
 
  update and insert.  This is done by automaticly combine adjacent deleted
43
 
  blocks and by extending blocks if the next block is deleted.
44
 
- For dynamic size rows, the delete link contains a pointer to itself
45
 
  (to make repairs easier).
46
 
- myisampack (called pack_isam in NISAM) can pack BLOB and VARCHAR
47
 
  columns.
48
 
- One can now disable any key from update;  In NISAM one could only disable
49
 
  the last x keys.
50
 
- One can have a UNIQUE constraint on anything (including BLOBS).
51
 
  This is implemented by a key that contains a hashed number of the whole
52
 
  record and before inserting a new record, MyISAM will check all records
53
 
  with the same hash for dupplicates.
54
 
- When creating the table, one can define that MyISAM should maintain
55
 
  a CRC for the whole table (to make isamchk even better). In the case of
56
 
  dynamic size rows, one will in this case get 1 byte checksum for each row.
57
 
  (This is a great help for debugging, but it can also be used to keep
58
 
  MyISAM table 'extra' safe.
59
 
- Temporary tables will not write not flushed keys to file on close and
60
 
  not wait on 'disk full' conditions.
61
 
 
62
 
Interface changes compared to NISAM:
63
 
 
64
 
- mi_create()
65
 
  - keyinfo->seg must be allocated explicitely.
66
 
  - One must put number of key segments in keyinfo