Subject Re: [firebird-support] INDEX directionality, why and how? What about KEYs?
Author Michael Ludwig
Ann W. Harrison schrieb am 10.05.2010 um 20:38:10 (-0400):

> Firebird does not use an external log for clean-up after a
> crash. Instead, it uses a technique called "careful write"
> to keep the database consistent on disk at all times.
> "Careful write" means that before you write a pointer to a
> thing, you write the thing. Before you delete a thing, you
> delete all pointers to it.

> Indexes are trees linked down and across...
>
> top
> / \
> nextLevel <-> nextLevel
>
> Each level is linked both left to right and right to left.
> That's not compatible with careful write - if two things
> point at each other, both must be written first.

And that can't happen in the careful-write way of doing things.
Thanks for this answer! Understanding the reasons helps a lot
when learning.

> > Second point of interest, what kind of indexes and with what
> > directionality are used to back up the following CONSTRAINTs:
> >
> > * PRIMARY KEY
> > * FOREIGN KEY
> > * UNIQUE
>
> Ascending

So does the general advice of creating a DESCENDING INDEX for
queries looking for high values apply here? Might it be worth
while creating an additional DESCENDING INDEX in any of these
three cases? Maybe if you want to do range queries for high
values?

--
Michael Ludwig