On Wed, 2003-11-05 at 13:44, Clark, Chris wrote:
> > -----Original Message-----
> > From: Mrs. Brisby [mailto:[EMAIL PROTECTED]
> > 
> > MySQL has stated in-documentation that it uses a B-tree for 
> > it's index.
> > I think this is a mistake- especially for larger indexes. 
> > Using several B-trees attached to a hash-table is much faster 
> > (if the hash is fast or your data is uniform).
> 
> Following this train of thought (this isn't a feature request!); some DBMS's support 
> different structures for tables/indices and the DBA can specify the required 
> structure depending in the expected data usage/patterns (and a 2ndary index need not 
> be the same structure as the primary table structure, allowing for, say, a hash 
> table and b-tree 2ndary's as per the example above). E.g. Ingres has; Heap (yep, 
> completely unstructured), B-tree, Hash, and ISAM (there is also an R-tree but that 
> is only for spatial datatypes so it's not as interesting for this discussion). It 
> all depends on the data and how it is used as to which structure should/could be 
> used.
> 
> A typical example of the hash primary and b-tree 2ndary is a unique customer id so 
> that the customer record can be hit directly with the hash, or if the hash is not 
> perfect, through a couple of overflow pages (compared to a b-tree which always will 
> need to jump through a few pages in the index, admittedly that may only be an 
> improvement of microsecs versus millisecs in lookup time). The b-tree 2ndary would 
> then be for things like customer name (which are often "duplicated", potentual for 
> lots of people called "Mr smith") in case one needs to perform searches on a 
> customer name (who say, forgot their customer id).

It wouldn't strictly require a hash-table either (after further
thought); perhaps just the first octet of the key could be permuted
though an 8->4 (15-bit) or 8->3 (7-bit) function. If the keys are
otherwise random this should be just as well and you wouldn't lose the
ability to use substrings...


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to