Подготовленные операторы MySQL против производительности хранимых процедур - PullRequest
2 голосов
/ 05 октября 2009

У меня есть старая база данных MySQL 4.1 с таблицей, которая имеет несколько миллионов строк, и старое приложение Java, которое подключается к этой базе данных и часто возвращает несколько тысяч строк из этой таблицы с помощью простого запроса SQL (т. Е. SELECT * FROM people WHERE first_name = 'Bob'. Я думаю, что Java-приложение использует подготовленные операторы на стороне клиента, но рассматривало переключение на сервер, и в упомянутом примере значение first_name будет зависеть от того, что вводит пользователь).

Я хотел бы ускорить выполнение запроса select, и мне было интересно, стоит ли мне переходить на подготовленные операторы или хранимые процедуры. Существует ли общее эмпирическое правило о том, что является более быстрым / менее ресурсоемким (или если комбинация того и другого лучше)

Ответы [ 3 ]

2 голосов
/ 05 октября 2009

У вас есть индекс first_name, верно? Это ускорит ваш запрос намного больше, чем выбор между подготовленными операторами и хранимыми процедурами.

0 голосов
/ 06 октября 2009

Похоже, лучший способ - это внести изменения и протестировать их в тестовой среде.

Спасибо за помощь.

0 голосов
/ 05 октября 2009

Если вам нужно беспокоиться только об одном запросе, вы сможете реализовать две альтернативы (конечно, на вашей тестовой платформе!) И посмотреть, какой из них даст вам наилучшую производительность.

(я думаю, что не будет большой разницы, хотя ...)

...