[wp-hackers] geocomments?
John Joseph Bachir
jjb at ibiblio.org
Fri Apr 14 19:52:10 GMT 2006
I thought I'd throw in my $0.02 on the structure of the options table.
Considering:
-the most common selective query on the options table selects on
option_name
-in mysql, a primary key dictates the order in which the data should be
stored in the "physical" file on disk. another way of saying this is that
the "main" data file for a table can effectively act as its own best
index. selecting on the primary key provides b-tree speed access to all of
the columns in the table, without having to first consult a separate
index.
So, the best way to optimize retrieving arbitrary columns when selecting
on an option_name is to make the option_name the primary key. Of course,
this contradicts with the general guideline of making a primary key column
as short as possible. But since this selection is by far the most
frequent, and joins on this table are rare or non-existant, I still think
this would be the best option.
However I do not have extensive experience working with tables that use
non-numeric coulmns as their primary key so perhaps I am missing something
here.
current indexes:
PRIMARY KEY (option_id,blog_id,option_name)
KEY option_name (option_name)
what i propose:
PRIMARY KEY (option_name,blog_id,option_id)
KEY option_name (option_id)
Of course, this demands that option_name be unique... which I just noticed
isn't currently the case. Does WP need to allow for multiple options with
the same option_name?
John
----
aim/yim/msn/jabber.org: johnjosephbachir
713.494.2704
irc://irc.freenode.net/lyceum
http://lyceum.ibiblio.org/
http://blog.johnjosephbachir.org/
More information about the wp-hackers
mailing list