but could this not be called a bug?

Am 07.10.2011 18:08, schrieb Michael Dykman:
> When a query selects on field_a and field_b, that index can be used.  If
> querying on field_a alone, the index again is useful.  Query on field_b
> alone however, that first index is of no use to you.
> 
> On Fri, Oct 7, 2011 at 10:49 AM, Brandon Phelps <bphe...@gls.com> wrote:
> 
>> This thread has sparked my interest. What is the difference between an
>> index on (field_a, field_b) and an index on (field_b, field_a)?
>>
>>
>> On 10/06/2011 07:43 PM, Nuno Tavares wrote:
>>
>>> Neil, whenever you see multiple fields you'd like to index, you should
>>> consider, at least:
>>>
>>> * The frequency of each query;
>>> * The occurrences of the same field in multiple queries;
>>> * The cardinality of each field;
>>>
>>> There is a tool "Index Analyzer" that may give you some hints, and I
>>> think it's maatkit that has a tool to run a "query log" to find good
>>> candidates - I've seen it somewhere, I believe....
>>>
>>> Just remember that idx_a(field_a,field_b) is not the same, and is not
>>> considered for use, the same way as idx_b(field_b,field_a).
>>>
>>> -NT
>>>
>>>
>>> Em 07-10-2011 00:22, Michael Dykman escreveu:
>>>
>>>> Only one index at a time can be used per query, so neither strategy is
>>>> optimal.  You need at look at the queries you intend to run against the
>>>> system and construct indexes which support them.
>>>>
>>>>  - md
>>>>
>>>> On Thu, Oct 6, 2011 at 2:35 PM, Neil Tompkins
>>>> <neil.tompk...@googlemail.com>**wrote:
>>>>
>>>>  Maybe that was a bad example.  If the query was name = 'Red' what index
>>>>> should I create ?
>>>>>
>>>>> Should I create a index of all columns used in each query or have a
>>>>> index
>>>>> on individual column ?
>>>>>
>>>>>
>>>>> On 6 Oct 2011, at 17:28, Michael Dykman<mdyk...@gmail.com>  wrote:
>>>>>
>>>>> For the first query, the obvious index on score will give you optimal
>>>>> results.
>>>>>
>>>>> The second query is founded on this phrase: "Like '%Red%' " and no index
>>>>> will help you there.  This is an anti-pattern, I am afraid.  The only
>>>>> way
>>>>> your database can satisfy that expression is to test each and every
>>>>> record
>>>>> in the that database (the test itself being expensive as infix finding
>>>>> is
>>>>> iterative).  Perhaps you should consider this approach instead:
>>>>>  <http://dev.mysql.com/doc/**refman/5.5/en/fulltext-**
>>>>> natural-language.html<http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html>
>>>>>>
>>>>> http://dev.mysql.com/doc/**refman/5.5/en/fulltext-**
>>>>> natural-language.html<http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html>
>>>>>
>>>>> On Thu, Oct 6, 2011 at 10:59 AM, Tompkins Neil<<neil.tompkins@**
>>>>> googlemail.com <neil.tompk...@googlemail.com>>
>>>>> neil.tompk...@googlemail.com>  wrote:
>>>>>
>>>>>  Hi,
>>>>>>
>>>>>> Can anyone help and offer some advice with regards MySQL indexes.
>>>>>>  Basically
>>>>>> we have a number of different tables all of which have the obviously
>>>>>> primary
>>>>>> keys.  We then have some queries using JOIN statements that run slowly
>>>>>> than
>>>>>> we wanted.  How many indexes are recommended per table ?  For example
>>>>>> should
>>>>>> I have a index on all fields that will be used in a WHERE statement ?
>>>>>>  Should the indexes be created with multiple fields ?  A example  of
>>>>>> two
>>>>>> basic queries
>>>>>>
>>>>>> SELECT auto_id, name, score
>>>>>> FROM test_table
>>>>>> WHERE score>  10
>>>>>> ORDER BY score DESC
>>>>>>
>>>>>>
>>>>>> SELECT auto_id, name, score
>>>>>> FROM test_table
>>>>>> WHERE score>  10
>>>>>> AND name Like '%Red%'
>>>>>> ORDER BY score DESC
>>>>>>
>>>>>> How many indexes should be created for these two queries ?
>>>>>>
>>>>>> Thanks,
>>>>>> Neil
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>  - michael dykman
>>>>>  -<mdyk...@gmail.com>mdykman@**gmail.com <mdyk...@gmail.com>
>>>>>
>>>>>  May the Source be with you.
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>> --
>> MySQL General Mailing List
>> For list archives: http://lists.mysql.com/mysql
>> To unsubscribe:    
>> http://lists.mysql.com/mysql?**unsub=mdyk...@gmail.com<http://lists.mysql.com/mysql?unsub=mdyk...@gmail.com>
>>
>>
> 
> 

-- 

Mit besten Grüßen, Reindl Harald
the lounge interactive design GmbH
A-1060 Vienna, Hofmühlgasse 17
CTO / software-development / cms-solutions
p: +43 (1) 595 3999 33, m: +43 (676) 40 221 40
icq: 154546673, http://www.thelounge.net/

http://www.thelounge.net/signature.asc.what.htm

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to