Now i create a table.
Follow is the create statement:

CREATE TABLE "DBA"."ITEM"
(
        "I_ID"               Integer    NOT NULL,
        "I_TITLE"               Varchar (60) ASCII,
        "I_A_ID"               Integer,
        "I_PUB_DATE"               Date,
        "I_PUBLISHER"               Varchar (60) ASCII,
        "I_SUBJECT"               Varchar (60) ASCII,
        "I_DESC"               Varchar (500) ASCII,
        "I_RELATED1"               Integer,
        "I_RELATED2"               Integer,
        "I_RELATED3"               Integer,
        "I_RELATED4"               Integer,
        "I_RELATED5"               Integer,
        "I_THUMBNAIL"               Varchar (40) ASCII,
        "I_IMAGE"               Varchar (40) ASCII,
        "I_SRP"               Fixed (17,2),
        "I_COST"               Fixed (17,2),
        "I_AVAIL"               Date,
        "I_STOCK"               Integer,
        "I_ISBN"               Char (13) ASCII,
        "I_PAGE"               Integer,
        "I_BACKING"               Varchar (15) ASCII,
        "I_DIMENSIONS"               Varchar (25) ASCII,
        PRIMARY KEY ("I_ID")
)

After creating the table,I do a query.
Follow is the query statement in a applation:

SELECT J.i_id,J.i_thumbnail from item I, item J where (I.i_related1 = J.i_id or I.i_related2 = J.i_id or I.i_related3 = J.i_id or I.i_related4 = J.i_id or I.i_related5 = J.i_id) and I.i_id = ?

The "?" is a parameter.I find there are happen a huge performance quetion.

I make a query plan for the query statement with "explain".I find there are "table scan" for table "J" and the cost is very large.

I feel "OR" is the reason.Index maybe be invalidated when using "OR" key word.

Can you tell me how to dealing when a statement using "OR" and how to optimize the operation?

There is a notice that the "I.i_id = ?" only be used once.

_________________________________________________________________
享用世界上最大的电子邮件系统― MSN Hotmail。 http://www.hotmail.com

--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to