Quantcast
Channel: MySQL Forums - Performance
Viewing all articles
Browse latest Browse all 1205

MYSQL issues with query performance (8 replies)

$
0
0
Hey All,

I am new to mysql and have some issues with a query im building.
For simplicity sake i am just selecting one row.

In this scenario i have 2 querys which look alike but one completes in around 0.04 seconds while the other query takes more then 1 second (around 1.4)

Query1: (0.04 secs)

SELECT

competences.name AS compname

FROM
users
JOIN
xref_users_competences
ON xref_users_competences.users_id = users.id
LEFT JOIN
xref_distance
ON xref_distance.postal2 = users.postal
AND xref_distance.postal1 = '6663'
LEFT JOIN
xref_users_searching
ON xref_users_competences.users_id = xref_users_searching.users_id
JOIN
competences
ON xref_users_competences.competences_id = competences.id
WHERE
users.acceptsallworkgroups = '0'
AND xref_users_competences.deleted = 0
AND xref_users_competences.active = '1'
AND xref_users_competences.deleted = '0'
AND xref_users_searching.searching = 'Searching'
AND xref_users_searching.competences_id IN (
23
)
AND xref_distance.distance < 92
AND xref_distance.distance > xref_users_competences.maxkm
AND xref_users_competences.users_id != 1592824499514626
EXPLAIN


Query2 (1.4 sec)

SELECT

competences.name AS competence_name

FROM
users
JOIN
xref_users_competences
ON xref_users_competences.users_id = users.id
LEFT JOIN
xref_distance
ON xref_distance.postal2 = users.postal
AND xref_distance.postal1 = '6663'

JOIN
competences
ON xref_users_competences.competences_id = competences.id
WHERE
users.acceptsallworkgroups = '1'
AND xref_users_competences.deleted = 0
AND xref_users_competences.active = '1'
AND xref_users_competences.deleted = '0'
AND xref_distance.distance < 92
AND xref_distance.distance > xref_users_competences.maxkm
AND xref_users_competences.users_id != 1592824499514626

Even if i force it to use the same indexes as query1 it takes over a second


As end result i need to combine these querys into one but using the current indexes this would take forever. This is the combined query i use:
SELECT
xref_users_competences.users_id,
users.average_rating,
users.cities_id,
xref_users_competences.id AS xrefid,
users.acceptsallworkgroups,
users.email,
users.id AS user,
users.cities_id,
users.city AS name,
users.versionid_image,
competences.parent_id AS compid,
competences.name AS compname,
xref_users_competences.competences_id,
users.firstname,
users.lastname,
users.createdon,
users.acceptsallworkgroups,
users.profilepicture,
competences.id,
competences.name AS competence_name,
xref_users_competences.maxkm,
xref_users_competences.id AS comp,
xref_users_competences.deleted,
xref_users_competences.comments,
xref_users_competences.functions,
xref_users_competences.active,
xref_distance.distance,
xref_users_competences.searching_or_offering
FROM
users
JOIN
xref_users_competences
ON xref_users_competences.users_id = users.id
JOIN
xref_distance
ON xref_distance.postal2 = users.postal
AND xref_distance.postal1 = '6663'
LEFT JOIN
xref_users_searching
ON xref_users_competences.users_id = xref_users_searching.users_id
JOIN
competences
ON xref_users_competences.competences_id = competences.id
WHERE
users.acceptsallworkgroups = '0'
AND xref_users_competences.deleted = 0
AND xref_users_competences.active = '1'
AND xref_users_competences.deleted = '0'
AND xref_users_searching.searching = 'Searching'
AND xref_users_searching.competences_id IN (
23
)
AND xref_distance.distance < 92
AND xref_distance.distance > xref_users_competences.maxkm
AND xref_users_competences.users_id != 1592824499514626

OR

users.acceptsallworkgroups = '1'
AND xref_users_competences.deleted = 0
AND xref_users_competences.active = '1'
AND xref_users_competences.deleted = '0'

AND xref_distance.distance < 92
AND xref_distance.distance > xref_users_competences.maxkm
AND xref_users_competences.users_id != 1592824499514626

We would also like to order by a specific row if possible (average_rating)
What am i doing wrong?
Any help would be greatly appreciated.

Viewing all articles
Browse latest Browse all 1205

Latest Images

Trending Articles



Latest Images