Hi all,
I have some tables (which can get pretty large) in
which I want to record 'current' data as well as 'historical' data. This
table has fields 'deleted' and 'deleteddate' (among other fields, of course).
The field 'deleted' is false be default. Every record that I want to delete gets
the value true for 'deleted' and 'deleteddate' is set to the date of
deletion.
Since these tables are used a lot by queries that
only use 'current' data, I have created a view with a where clause 'Where not
deleted'. Also, I have indexed field 'deleted'.
I did this this because I read somewhere that
fields that can contain NULL values will NOT be indexed.
Is this true?
Or could I ditch the 'deleted' field and just set
'deleteddate' to NULL by default and to a DATE in the case of a deleted record?
I could then index the field 'deleteddate' and create a view with where clause
'Where deleteddate is null'.
Would this give the same performance as my current
solution (with an indexed boolean field 'deleted') ?
I cannot test this myself at the moment as I am
still in a design phase and do not have a real server available
yet...
Thanks in advance,
Alexander Priem |
- Re: [PERFORM] Indexing question Alexander Priem
- Re: [PERFORM] Indexing question Christopher Kings-Lynne
- Re: [PERFORM] Indexing question Tomasz Myrta
- Re: [PERFORM] Indexing question Alexander Priem
- Re: [PERFORM] Indexing question Tomasz Myrta
- Re: [PERFORM] Indexing question Alexander Priem
- Re: [PERFORM] Indexing quest... Tomasz Myrta
- Re: [PERFORM] Indexing q... Alexander Priem
- Re: [PERFORM] Indexi... Tom Lane
- Re: [PERFORM] Indexi... Alexander Priem
- Re: [PERFORM] Indexi... Richard Ellis