Ok so I’ve a SQL query here:
SELECT a.id,... FROM article AS a WHERE a.type=1 AND a.id=3765 ORDER BY a.datetime DESC LIMIT 1
I wanted to get exact article by country and id and created for that index with two columns type and id. Id is also primary key.
I used the EXPLAIN keyword to see which index is used and instead of the multiple column index it used primary key index, but I did set the where stuff exactly in order as the index is created.
Does MySQL use the primary key index instead of the multiple column index because the primary one is faster? Or should I force MySql to use the multiple column index?
P.S. Just noticed it was stupid to use order when there is 1 result row. Haha. It increased the search time for 0.0001 seconds. 😛
I don’e KNOW, but I would THINK that the primary key index would be the fastest available. And if it is, there’s not much use using any other index. You’re either going to have a article with an id of 3765 or you’re not. Scanning that single row to determine if the type matches is trivial.
If you’re only returning one row, there’s no point to your ORDER BY clause. And the only point to the a.type=1 is to reject an article with the right id if the type is not correct.