powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация функций MySQL
4 сообщений из 4, страница 1 из 1
Оптимизация функций MySQL
    #39201127
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть функция следующего вида:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE FUNCTION fn_test(IN_Condition tinyint)
  RETURNS tinyint
BEGIN
  IF IN_Condition THEN
    RETURN 1;
  ELSE
    SELECT COUNT(*) FROM very_big_table into @f;
    RETURN 0;
  END IF;
END


Запускаю с параметром 1, когда, казалось бы, функция ничего не должна делать. Возвращает 1, но время выполнения - более секунды. Но стоит закомментировать строку с SELECT COUNT - функция отрабатывает с тем же результатом молниеносно. Проделывал несколько раз, для чистоты эксперимента, чтобы избежать кэширования, специально перед каждым вызовом перезапускал MySQL. Результат одинаковый.

Это так задумано, или нужно подшаманить что-то с настройками MySQL?
Версия MySQL 5.1.53.
...
Рейтинг: 0 / 0
Оптимизация функций MySQL
    #39201137
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитайте про SELECT COUNT(*) отдельно, все будет понятно
...
Рейтинг: 0 / 0
Оптимизация функций MySQL
    #39201144
A-MaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT COUNT в данном случае - просто утрированный пример. В реальности в этой ветке производится модификация данных в совокупности с тяжелыми запросами. Смысл вопроса был в том, можно ли заставить MySQL игнорировать эту ветку, когда в ее выполнении нет необходимости?
...
Рейтинг: 0 / 0
Оптимизация функций MySQL
    #39201190
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A-MaRSELECT COUNT в данном случае - просто утрированный пример. В реальности в этой ветке производится модификация данных в совокупности с тяжелыми запросами. Смысл вопроса был в том, можно ли заставить MySQL игнорировать эту ветку, когда в ее выполнении нет необходимости?


...да, что-то тут не то.
попробуйте переписать ИФ-ЕЛСЕ другими конструкциями:
напромер два отдельных ИФа...
или CASE....
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация функций MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]