- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Да, например, вот - не инициализированная переменная $start - вместо нее должна быть видимо $from.
Это банальная опечатка, а не рукожопость. И она выдаст только предупреждение, что данной переменной не существует, а не замедляем выполнение до полутора часа...
Вопрос решил сам, ковыряя мануалы... Проблема была в том, что выборка включает в себе вложенные выборки и по каждому WHERE нужны многоколоночные индексы. phpMyadmin их имитирует на этапе PREPARE. А для php нужно указывать самому.
Вот про виртуализацию индексов phpMyadmin а узнал спустя 5 дней гугленья.
Чего-чего phpmyadmin имитирует?
И чего надо указывать там в PHP?
Чего-чего phpmyadmin имитирует?
Не имитирует а определяем нужные поля индексов и создает временную таблицу с ними на этапе PREPARE. После СОMPLETE она сразу удаляется. Так как будто бы они были добавлены в саму структуру БД.
Я не особо силен в терминологии, поэтому извините за мой французкий.
Не имитирует а определяем нужные поля индексов и создает временную таблицу с ними на этапе PREPARE. После СОMPLETE она сразу удаляется. Так как будто бы они были добавлены в саму структуру БД.
Я не особо силен в терминологии, поэтому извините за мой французкий.
Ссылку на данную информацию скиньте, я так понимаю источник зарубежный.
Ссылку на данную информацию скиньте, я так понимаю источник зарубежный.
Ближе к вечеру постараюсь найти в истории.
Ближе к вечеру постараюсь найти в истории.
И что вы в PHP подставляли?
В php ничего. Просто создав многостолбцовый индекс и подкорректировал запрос, указал его приоритетным. Время выполнения стало отличаться на %%5 максимум
Версия MySQL какая?
Просто создание индекса не меняет дело?
Только указывать его принудительно? Это очень редкая ситуация.
Версия MySQL какая?
Просто создание индекса не меняет дело?
Только указывать его принудительно? Это очень редкая ситуация.
В запросе во вложенной секции WHERE до 5 условий.
ситуация 1: 5 условий, имеются индексы по 1 столбцу - запрос в myadmin выполняется ~5 секунд, скриптом php - около часа.
ситуация 2: 5 условий, имеется группированный индекс по 5 столбцам - запрос в myadmin выполняется ~3.5-4 секунды, скриптом php - около часа.
ситуация 3: 5 условий, имеется группированный индекс по 5 столбцам с его принудительным указанием (USE INDEX ...) - запрос в myadmin выполняется ~3.5-4 секунды, скриптом php ~4.5 секунд.
Вот такая картина. И мне она непонятна была пока не наткнулся на указанное выше объяснение. Но факт является фактом - проблема решилась.