Custom fields schema

Sean McAfee etzwane at schwag.org
Fri Dec 24 03:52:05 UTC 2004


Myk Melez <myk at mozilla.org> wrote:
>Sean McAfee wrote:
>>Is this enough data to put this issue to rest?  Pretty please?

>Not really.  First, it doesn't measure the impact of indexes.

Which indexes would those be?

>Second, 
>it doesn't include the cost of looking up field IDs.

Insignificant, even in the ludicrous case of hundreds of thousands of
fields, thanks to indices.

>Third, it only 
>measures search performance, but most queries retrieve bug data for 
>specific bugs.

The search yields bug IDs, which are looked up by primary key in all data
tables.  Again, insignificant.

>Fourth, it doesn't take what bbaetz says into account.  

My revised tests took most of what he said into account.  What did I miss
that's important?

(By the way, I was unaware of the "one index per table per query" MySQL
limitation bbaetz mentioned.  I was prepared to see my solution's
performance dive into the ground with larger numbers of fields of different
types, but it didn't happen.  What's the deal?  If it's true, I guess "one
index" is counted even if a table is joined against multiple times.  All of
my query joins use only the index on field_id.)

>And fifth, I never claimed bugs table columns were more performant, only 
>that they were performant enough, which they are, considering the 
>"custom fields" already in use as standard colums.

13-14 seconds versus 4-5 seconds is "performant enough"?

It's not as if there's even a greater cost associated with developing the
faster solution.  It exists today.  The slower one does not.

>But the primary reason it doesn't put the issue to rest is that sparse 
>fields go into separate tables under the fields-as-columns proposal as 
>well, so that proposal gets any benefit to separate tables.

Do you have a specific proposal that can be tested?  And, er, I don't want
to sound rude, but would you mind testing it yourself?  I've already done
quite a lot in that area.

As an aside, my own intuition is against the notion of modifying the
database schema as part of routine system administration.


--Sean



More information about the developers mailing list