Wracając

Optymalizacja baz danych

Używamy serwerów MariaDB, które są bardzo dobrym rozwojem serwerów MySQL, i nie zmieniają niczego pod względem zgodności baz danych MySQL do MariaDB. MariaDB proponuje się przekształcenie tabel MyISAM w nowy format Aria, ponieważ daje to lepszą odporność na rozbicie i nieco większą prędkość. Konwersja do innoDB jest drugą opcją.

Przelicz tabele to bardzo podstawowe zadanie optymalizacji baz danych, prawdziwa optymalizacja polega na tym, że masz indeksy w swojej bazie danych, a to jest trudno dostępne w istniejących CMS, ale dostępne dla modułów trzecich, które kupiłeś (zasugeruj edytora optymalizacji ich modułu). Dla niestandardowych stron internetowych, tylko specjalista od baz danych lub doświadczony webmaster może wykonać tę pracę technicznie trudne... Również można odnieść się do specjalistycznych poradniki online.

Przed konwersją spróbuj funkcji phpmyadmin w tej kolejności wybierając wszystkie tabele bazy: sprawdzić stół, naprawić stół, zoptymalizować stół...

Pierwsza idea to wyszukiwanie dużych tabel w bazie danych w rozmiarze MB, ale także tych zawierających wiele linii: sortowanie tabel z phpmyadmin w celu zlokalizowania cpanel.

Jeśli jego rozmiar jest uzasadniony, to nie dla logów/chów lub podobnych, w którym przypadku należy je regularnie opróżniać.

Jeśli żaden przypadek nie dotyczy Twojej bazy danych, a problem nadal trwa, to problem jest prawdopodobnie wynikiem projektowania bazy danych lub kilku tabel związanych z wtyczkami, lub twój kod PHP również nie jest dobry...

 

Jak przekonwertować tabele MyISAM do Aria lub InnoDB?

Aby przekonwertować /ex wszystkie istniejące MyISAM do InnoDB. Z phpmyadmin, kliknij w lewo na swojej bazie danych, a następnie kliknij przycisk SQL na górze... Wklej to poniżej, a następnie 'Uruchom'

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='MyISAM'

 

Domyślny wynik z krótkimi tekstami, więc musisz przejść powyżej w '+ Opcje', kliknij 'pełne klucze' i dostać to w tym przykładzie:

ALTER TABLE ps_carrier ENGINE=InnoDB;

ALTER TABLE ps_expressmailing ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_accountdates ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_birthdays ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_buyingdates ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_categories ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_civilities ENGINE=InnoDB;

Teraz skopiować całość powyżej i wkleić go do SQL, a następnie Execut, a konwersja jest wykonana!

 

Zalecane i priorytetowe:

Jeśli jesteś na MariaDB, jak w YOORshop, proponujemy konwersja tabel MyISAM z bazy danych do ARIA (ten format jest anty-krąg, i wydajniejszy):

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='MyISAM'

 

Aby przekonwertować tabele InnoDB z bazy danych do ARIA:

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='InnoDB'

 

Aby przekonwertować tabele ARIA z bazy danych do InnoDB:

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;') 

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='ARIA'

 

Dla Prestashop /ex, jeśli twoja baza jest duża bez powodu jako ważny katalog, to możesz zrobić 'vidange', te tabele prestashop można opróżnić bez żadnych problemów, zobacz przycisk 'opróżnić':

ps_connects

ps_ connections_ page

ps_connections_source

ps_guest (jest on połączony z modułem statów i zostanie ponownie wypełniony, jeśli nie wyłączysz modułu)

ps_pagenotfound

ps_page_viewed

ps_referr_cache

ps_date_ range

ps_search_index + ps_search_word + ps_statssearch musi być wykonane w tym samym czasie, a następnie odtwórz indeks wyszukiwania w prestashop

Inne tabele związane z modułami lub nie, a przechowywane z pamięci podręcznej bez opróżniania mogą być opróżniane, skontaktuj się z edytorem. 

 

NB:

Aby przenieść się do innego serwera mysql, musisz przekonwertować tabele aria ponownie do innodb lub myslam

 

Eksport, opcje:

Odszyfruj AUTO_INCREMENT

Edytuj bazę danych z notepad+ i usuwaj wszędzie TRANSACTIONAL=1

Importuj bazę, nie powinno być żadnych błędów... (format MYSQL 40 może pomóc)