Обсуждение: Small table or partial index?

Поиск
Список
Период
Сортировка

Small table or partial index?

От
Francisco Reyes
Дата:
I am in the process of designing a new system.
There will be a long list of words such as

-word table
word_id integer
word varchar
special boolean

Some "special" words are used to determine if some work is to be done and
will be what we care the most for one type of operation.

Will it be more effective to have a partial index 'where is special' or to
copy those special emails to their own table?

The projected number of non special words is in the millions while the
special ones will be in the thousands at most (under 10K for sure).

My personal view is that performance should be pretty much equal, but one of
 my co-worker's believes that the smaller table would likely get cached by
the OS since it would be used so frequently and would perform better.

In both instances we would be hitting an index of exactly the same size.

The searches will be 'where word = <variable> and is special'


Re: Small table or partial index?

От
"Jim C. Nasby"
Дата:
On Fri, Dec 02, 2005 at 06:28:09PM -0500, Francisco Reyes wrote:
> I am in the process of designing a new system.
> There will be a long list of words such as
>
> -word table
> word_id integer
> word varchar
> special boolean
>
> Some "special" words are used to determine if some work is to be done and
> will be what we care the most for one type of operation.

Tough call. The key here is the amount of time required to do a join. It
also depends on if you need all the special words or not. Your best bet
is to try and benchmark both ways.
--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

Re: Small table or partial index?

От
Francisco Reyes
Дата:
Jim C. Nasby writes:

> On Fri, Dec 02, 2005 at 06:28:09PM -0500, Francisco Reyes wrote:
>> I am in the process of designing a new system.
>> There will be a long list of words such as
>>
>> -word table
>> word_id integer
>> word varchar
>> special boolean
>>
>> Some "special" words are used to determine if some work is to be done and
>> will be what we care the most for one type of operation.
>
> Tough call. The key here is the amount of time required to do a join. It
> also depends on if you need all the special words or not. Your best bet
> is to try and benchmark both ways.


In your opinion do you think performance will be comparable?
I am hoping I will have time to test, but not sure if will have time and the
tables will be pretty large. :-(