Jump to content

Mysql: Index on date field not getting used


Recommended Posts

Hello,

 

I have a query that is very slow. This query used the date field to find urls that are less than 30 days old.

 

In order to speed up this query, I indexed the date field. Evem after the indexing the query results are slow and explain on select statement doesn\'t show that the index is getting used. Is there anyway I can make my select statement use the index. Here is my query

 

SELECT distinct r.res_id, r.resource_name,r.resource_url FROM links l, sections s, resources r WHERE l.sec_id = 62 AND r.res_id = l.res_id AND s.sec_id = l.sec_id AND to_days(now()) - to_days(r.update_date) <= 30 ORDER BY r.resource_name asc 

 

thanks

anna

My method would be

 

[php:1:08019e602b]<?php

$d30 = date(\'Y-m-d\' , strtotime(\'-30 days\'));

 

$sql = \"SELECT distinct r.res_id, r.resource_name,r.resource_url

FROM (links l INNER JOIN sections s ON l.sec_id = s.sec_id)

INNER JOIN resources r ON l.res_id = r.res_id

WHERE l.sec_id = 62 AND r.update_date > \'$d30\'

ORDER BY r.resource_name \";

?>[/php:1:08019e602b]

 

hth

Not too sure about the internals of MySql. Does an index on resource_name give it a speed boost, or do you have one already?

 

I do know that INNER JOINS are more efficient than using WHERE to join tables. I also find it easier to understand when the WHERE criteria are separated form the join criteria. Also it isn\'t doing a date conversion TO_DAYS on every record, just a compare.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.