Hi
i need an optimization of this request, it's take 6 s now to get the result for 90000 rows.
SELECT
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL] AS type_id,
[login to view URL] AS type,
X(location) AS lat,
Y(location) AS lng,
GLength(LineString(PointFromWKB(POINT(:lat, :lng)), PointFromWKB(location))) * 100 AS distance,
[login to view URL],
COUNT([login to view URL]) AS nb_messages
FROM (
SELECT
GLength(LineString(PointFromWKB(POINT(:lat, :lng)), PointFromWKB(location))) * 100 AS distance,
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL],
[login to view URL],
t_item.type_id,
[login to view URL]
FROM t_item
WHERE [login to view URL] = 'verified'
AND 1
ORDER BY 1 ASC
LIMIT 10 OFFSET 0
) AS t_item
LEFT JOIN t_item_type ON t_item.type_id = [login to view URL]
LEFT JOIN t_item_message ON t_item_message.item_id = [login to view URL]
GROUP BY [login to view URL]
Parameters:
Array
(
[:lat] => 48.856614
[:lng] => 2.3522219000000177
)
regards
You are using so many custom functions (like PointFromWKB) inside your SQL.
Where are they defined?
What database manager is? (Access? SQL Server? Oracle?)
Try to create a VIEW from your main "table" (the inner select).