3. Tips & Tricks
● my.ini: buffer_pool_size
● Analize tool
● "Named" queries: where 'A'='A'
● FORCE INDEX
● distinct vs limit*distinctSize
● "limited" count
4. FORCE INDEX
select n.id as nId
from news n, tags_in_news tin
where 'getRelativeNews' = 'getRelativeNews' AND
n.deleted = false and n.id = tin.news_id and
tin.deleted = false and n.football24_news_id is null and
n.news_status_lid = 19 and n.id not in (0, 530120) and
n.language_id = 1 and n.id != 530120 and
tin.tag_id in (0, 1119, 2228, 4031, 1792, 1117, 3954, 2150,
3919, 4087) and
n.has_video = true and n.modified_date <= '2015-01-13
15:24:00'
order by n.modified_date desc
limit 45
select n.id as nId
from news n FORCE INDEX (ix_modified_date), tags_in_news
tin
where 'getRelativeNews' = 'getRelativeNews' AND
n.deleted = false and n.id = tin.news_id and
tin.deleted = false and n.football24_news_id is null and
n.news_status_lid = 19 and n.id not in (0, 530120) and
n.language_id = 1 and n.id != 530120 and
tin.tag_id in (0, 1119, 2228, 4031, 1792, 1117, 3954, 2150,
3919, 4087) and
n.has_video = true and n.modified_date <= '2015-01-13
15:24:00'
order by n.modified_date desc
limit 45
5. distinct vs limit*distinctSize
select distinct n.id as nId
from news n, tags_in_news tin
where 'getRelativeNews' = 'getRelativeNews' AND
n.deleted = false and n.id = tin.news_id and
tin.deleted = false and n.news_status_lid = 19 and
n.language_id = 1 and tin.tag_id in (0, 1119, 1117) and
n.has_video = true and n.modified_date <= Now()
order by n.modified_date desc
limit 4
select n.id as nId
from news n, tags_in_news tin
where 'getRelativeNews' = 'getRelativeNews' AND
n.deleted = false and n.id = tin.news_id and
tin.deleted = false and n.news_status_lid = 19 and
n.language_id = 1 and tin.tag_id in (0, 1119, 1117) and
n.has_video = true and n.modified_date <= Now()
order by n.modified_date desc
limit 8
select n.id from news n
where n.id in (530740, 530740, 530739, 530739, 530735,
530735, 530734, 530734)
order by n.modified_date desc