livetv

Рейтинг
266
Регистрация
10.02.2015
WebAlt:
сначала нужно назначить новый домен главным зеркалом и дождаться склейки зеркал, и только потом редиректы, а не наоборот.
Указать адрес главного зеркала вы можете двумя способами
Установить постоянный серверный редирект с HTTP-кодом 301.
Чтобы склеить зеркала, роботу Яндекса достаточно директивы Host в файлах robots.txt для всех зеркал. Редирект настраивать необязательно.

В справке гугле вообще полуерунда. :)

Установите nginx из репозитория nginx и не выдумывайте...

EXPLAIN-ы как бы одинаковые.

Только я хз, почему

в первой таблице "const 1 Using temporary"

То есть выбирается по индексу 1 строка, но используются временные таблицы :)

Можно запрос переписать так:


SELECT
P.ID
FROM
wp_posts P
JOIN
wp_term_relationships R ON (R.object_id = P.ID)
JOIN
wp_term_taxonomy T ON (T.term_taxonomy_id = R.term_taxonomy_id AND T.term_id = 685)
WHERE
1
AND P.post_status = 'publish'
AND P.post_type = 'post'
AND P.post_date < NOW()
GROUP BY
P.ID

Mysql c какой-то версии имеет тип поля JSON.

То есть можно фильтровать более менее нативно.

Но вот индексов по нему не построить :)

Может все же JOIN-нить несколько таблиц?

Это самописный запрос или CMS его сама генерирует?


SELECT
DISTINCT P.ID
FROM
wp_posts P
JOIN
wp_term_relationships R ON (R.object_id = P.ID)
JOIN
wp_term_taxonomy T ON (T.term_taxonomy_id = R.term_taxonomy_id AND T.term_id = 685)
WHERE
1
AND P.post_status = 'publish'
AND P.post_type = 'post'
AND P.post_date < NOW()

Какой EXPLAIN у Вашего и моего запроса?

1. Запрос не полный

2. SHOW PROCESSLIST в Mysql вряд ли адекватный :)

3. Вы отключили временные таблицы в памяти, они будут создаваться сразу на диске.

4. EXPLAIN в студию

FROM wp_term_taxonomy, wp_posts, wp_term_relationships

Так запросы не пишут!

Тут может быть полное объединение таблиц :)

Нужно использовать JOIN:

FROM 

wp_posts P
JOIN
wp_term_relationships R ON (R.some_field = P.some_field)
JOIN
wp_term_taxonomy T ON (T.some_field = R.some_field)

Если помогло, то ок. :)

У самого часто висят запросы с такой информацией в SHOW PROCESSLIST.

Дивно, что отключение временные таблиц в памяти решило проблему. :)

Блокировка сессий в php скорее всего...

Изучайте:

X-Accel-Redirect

session_write_close()

danforth:
До того, как вы начнете на практике применять паттерны ООП, и не поймете их минусы и плюсы, я советую не читать книг по паттернам, и не использовать фреймворки, иначе случится паттерн головного мозга, и паттерны будут применяться не по назначению, а просто потому, что вы их знаете, вы будете лепить их к месту и не к месту.

+1.

Только рынок труда диктует другое. :)

Все вакансии требуют знания фреймворков и паттернов. :)

Хотя, когда приходишь на проект, - говнокод говнокодом.

Рынок труда захватили модники. :)

Сам проходил через ООП головного мозга в начале карьеры.

Везде говорилось, что кто не пишет на ООП, тот лох. :)

mdevelop:
$class::getInstance()

А вдруг это не одиночка, а другой шаблон?

Декоратор, допустим.

Одиночка используется, если необходимо обеспечить наличие одного экземпляра или ленивую инициализацию.

Может также использоваться пул одиночек.

---------- Добавлено 05.02.2017 в 12:40 ----------

danforth:

1) Проблемы с тестированием.

Как и с любым статическим методом :)

Как эту проблему решают фреймворки? :) У них тоже статики дофига.

danforth:

2) Непрозрачная структура зависимостей: синглтон не передается параметром в метод, он вызывается изнутри через getInstance();

Можно передавать параметром. :)

Ну и это отновится к любой статике. :)

danforth:

3) Нарушением S акронима SOLID, управляет своим жизненным циклом сам, невозможно уничтожить (а даже если и сделать метод-деструктор, то появляется зависимость от состояния системы - кто вызвал, когда инстанс был создан, кем, для чего, а может он уже вообще не нужен?).

А зачем его уничтожать? :)

Если это соединение с БД, то можно просто его закрыть. :)

danforth:

4) Порождает высокую связанность системы, которая полностью опирается на этот синглтон. Можете поискать в проекте с хотя бы синглтоном количество вызовов getInstance();

Хм, одиночку можно реализовать и без статического метода.

Но это будет не совсем одиночка.

Хранить одиночку в поле приложения.

Но необходима гарантия, что существует только один экземпляр приложения.

Хотя, зачем. Если будет другой экземпляр, то ему лучше дать своего одиночку. :)

danforth:

5) Нету никакой необходимости в его использовании. Нету ни одной причины, где действительно требовалось существование только одного объекта за жизненный цикл программы, и где бы мы не смогли проконтролировать количество этих объектов.

А как контролировать количество соединений с mysql и memcached? :)

---------- Добавлено 05.02.2017 в 12:46 ----------

mdevelop:
Из очевидных преимуществ я пока вижу возможность реализовать несколько методов одной строкой, например, так $class::getInstance()->method1()->method2()->method2().

Одиночка тут ни при чем.

Это называется цепочка вызовов.

Реализуется через return $this.

Хм, а это как-то ускоряет индексацию? :)

Вернее, способствует появлению страниц в выдаче в тот же день?

Всего: 2580