WordPress

Podzielona baza danych na dużej witrynie?

  • 28 października, 2015
  • 3 min read
Podzielona baza danych na dużej witrynie?


Jaki będzie najlepszy sposób na podzielenie dużej bazy danych na jedną witrynę, a nie instalację wp na wielu witrynach? Być może do tego służy HyperDB (tylko mniej niż 10 webmasterów zdołało dowiedzieć się, jak go zainstalować, zgodnie z aktywnymi instalacjami).

Obecnie strona ma około 350k postów, jest na dobrym VPS. Witryna działa dość szybko z przodu, otwiera strony, przeglądanie… Ale zwalnia na zapleczu podczas publikowania nowych postów, każdego dnia dodawanych jest wiele nowych postów.

Witryna ma następującą strukturę bezpośredniego łącza:

sitename.com/rok/miesiąc/dzień/postid/post-name Praktycznie tylko nowe posty są edytowane, a raz opublikowane posty nie są zmieniane.

Masz pomysł, jak przyspieszyć pisanie bazy danych lub lepiej, aby opublikować post w jednej bazie danych i mieć nową bazę danych dla przyszłych postów?


Aktualizacja:

Pierwsza instalacja: Czy instalacja w katalogu głównym witryny z nową bazą danych, bez starych, opublikowanych postów, tylko dla przyszłych postów. Struktura bezpośredniego łącza jest taka, jaka była:

nazwa-witryny.com/rok/miesiąc/dzień/postid/nazwa-posta

Druga instalacja:
Utworzono folder „2015” w katalogu głównym witryny i zainstalowano WP w tym folderze z bazą danych sql oryginalnej instalacji WP z roota, ze wszystkimi postami do końca września, tylko bezpośredni link został zmieniony na:

Warto przeczytać!  błędy — Wordpress Customizer nie ładuje się

nazwa-witryny.com/miesiąc/dzień/postid/nazwa-posta

i da taką samą strukturę adresu URL, jak była (ponieważ WP znajduje się w podfolderze „2015”):

nazwa-witryny.com/rok/miesiąc/dzień/postid/nazwa-posta

Takie podejście sprawdza się, gdy muszę podzielić bazę danych raz w roku (na przykład dla roku 2014). Na każdy ostatni rok mogę mieć jeden folder nazwany według poprzedniego roku iz instalacją WP w tym folderze z bazą danych z postami z tego ostatniego roku.

W ten sposób, gdy odwiedzający spróbuje otworzyć adres URL, na przykład:

sitename.com/2014/01/01/post-name-tutaj

serwer najpierw zajrzy do podfolderu /2014/ i jest instalacja WP, która zwróci ten post.

Problem:
Kiedy baza danych jest za duża na bieżący rok, próbowałem podzielić posty z bieżącego roku na dwie bazy danych, jedna zawiera wszystkie opublikowane posty od tego roku do końca września, a druga będzie zawierała przyszłe posty.

Mam to:

W katalogu głównym strony mam folder „2015” z instalacją WP ze strukturą permalink:

nazwa-witryny.com/miesiąc/dzień/postid/nazwa-posta

A w instalacji root WP ze strukturą permalink:

nazwa-witryny.com/rok/miesiąc/dzień/postid/nazwa-posta

Jeśli spróbuję otworzyć adres URL:

sitename.com/2015/09/01/post-name-tutaj

serwer sprawdzi w folderze „2015”, a instalacja WP z tego folderu zwróci post z 1 września i działa dobrze.

Warto przeczytać!  dostosowywanie — niestandardowy typ postu domyślnie to index.php dla strony archiwum

Jeśli dziś opublikuję nowy post w instalacji WP w katalogu głównym witryny, będzie on miał adres URL taki jak ten: sitename.com/2015/10/29/post-name-here

A jeśli spróbuję go otworzyć, serwer zajrzy do instalacji WP w folderze „2015”, ale ta instalacja ma posty tylko do końca września, a ja dostanę 404. Po tym serwer nie zajrzy do instalacji WP w katalogu głównym strona, na której znajduje się ten post.

Pytanie:

Jak sprawić, by serwer wyglądał w instalacji WP w podfolderze „2015”, a jeśli nie ma posta w tej instalacji, aby szukać tego postu w instalacji WP w katalogu głównym witryny?


Źródło