У меня есть следующий SQL-запрос, который начал работать очень медленно, так как в базе данных есть много записей.Медленная производительность MySQL Query
Может ли кто-нибудь увидеть, могу ли я изменить код, чтобы улучшить производительность?
select
invoice.id,
invoice.job_no,
invoice.invoice_no,
invoice.invoice_date,
invoice.invoice_sent,
invoice.address,
invoice.contact_id,
invoice.employee_id,
invoice.amount as inv_amt,
sum(job_additions.amount) as add_amt
from
invoice
left join
job_additions ON invoice.invoice_no = job_additions.invoice_no
where
invoice_sent like '%$_GET[invoice_sent]'
and job_no like '$_GET[job_no]%'
and invoice.invoice_no like '$_GET[invoice_no]%'
and invoice.address like '%$_GET[address]%'
group by invoice.invoice_no
order by invoice.id desc
limit $records_to_return
Большое спасибо,
Джон
@GordonLinoff - Я внесла изменения в код, чтобы включить переменные, которые передаются из формы. Спасибо –
'% не может использовать индекс, поэтому всегда будет медленным. Кроме того, ваша база данных не имеет нормализации. – Strawberry
@Strawberry не знал о том, как не использовать индексы. Спасибо за подсказку! –