Вы должны ответить на веб-соединения с ответом. Если у вас есть статический HTML, index.html
, например
<h1>Hello World</h1>
, вам нужно установить Firebase CLI Tools, а затем выполнить развертывание firebase, чтобы отправить этот файл .html
на хостинг Firebase.
Я предполагаю, что Вы посмотрели здесь для получения большего количества информации о том, что она говорит Вам. Очевидно, ВСЕ средства его прохождение через всех них. О временном использовании и использовании filesort говорят на той странице. Вы могли бы хотеть посмотреть на это.
От страницы:
Используя filesort
MySQL должен сделать дополнительную передачу, чтобы узнать, как получить строки в отсортированном порядке. Вид сделан путем прохождения через всех строк согласно типу соединения и хранения ключа сортировки и указателя на строку для всех строк, которые соответствуют оператору Where. Ключи затем отсортированы, и строки получены в отсортированном порядке. Посмотрите Раздел 7.2.12, “Оптимизация ORDER BY”.
Используя временный файл
Для разрешения запроса MySQL должен составить временную таблицу для содержания результата. Это обычно происходит, если запрос содержит GROUP BY и пункты ORDER BY тот список столбцы по-другому.
Я соглашаюсь, что наблюдение запроса могло бы помочь понять вещи лучше.
Повредите запрос в 2 и используйте временную таблицу в середине.
Проблема, кажется, что таблица c является таблицей, просканированной, и что это - последняя таблица в запросе. Это, вероятно, плохо: если у Вас есть сканирование таблицы, Вы хотите сделать это в начале запроса, таким образом, это только сделано однажды.
Я не гуру MySQL, но я потратил большой запросы оптимизации времени на другом DBS. Это смотрит на меня как оптимизатор, не решил, что это должно запуститься с c и работы назад.
Другая вещь, которая ударяет меня, состоит в том, что существует, вероятно, слишком много таблиц в соединении. Большинство оптимизаторов борется больше чем с 4 таблицами (потому что количество возможных заказов таблицы растет экспоненциально, таким образом проверение их всех становится непрактичным).
Наличие слишком многих таблиц в соединении является корнем 90% проблем производительности, которые я видел.
Дайте ему движение и сообщите нам, как Вы преуспеваете. Если это не помогает, отправьте SQL, определения таблицы и индексы, и я брошу другой взгляд.
Не стесняйтесь смотреть на этот ответ, который я дал на общих подсказках по производительности.
Хорошо рассмотрение запроса было бы полезно, но существует по крайней мере одна вещь, которую это очевидно стоит изучить - заключительная строка показывает ВЕСЬ тип для той части запроса, который является обычно не большим видеть. Если предложенный возможный ключ (userfield) имеет смысл как добавленный индекс к таблице c, могло бы стоить добавить его и видеть, уменьшает ли это строки, возвращенные для той таблицы в поиске.
План запросов мы могли бы надеяться, что оптимизатор выберет, был бы чем-то как:
sessions
где partner_id=1
, возможно с помощью индекса на partner_id,
sessions
кому: users
, использование индекса на user_id
sessions
кому: phones
, где status=1
, использование индекса на session_id
и возможно status
sessions
кому: phones
снова с помощью индекса на session_id
и phone_id
**phones
кому: cdr
использование индекса на userfield
sessions
кому: email_aliases
, где status=1
использование индекса на session_id
и возможно status
sessions
кому: email_aliases
снова с помощью индекса на session_id
и email_id
**email_aliases
кому: email_headers
использование индекса на email_id
** путем помещения 2 полей в эти индексы мы позволяем оптимизатору соединить с использованием таблицы session_id
, и сразу узнайте связанное phone_id
или email_id
не имея необходимость читать базовую таблицу. Эта техника сохраняет нас чтение и может сэкономить много времени.
Вышеупомянутый план запросов предлагает эти индексы:
fa_sessions ( partner_id, session_id )
fa_users ( user_id )
fa_email_aliases ( session_id, email_id )
fa_email_headers ( email_id )
fa_email_aliases ( session_id, status )
fa_phones ( session_id, status, phone_id )
cdr ( userfield )
fa_email_aliases
мог бы работать с ( session_id, status, email_id )
В зависимости от того, как работает оптимизатор.