Dołącz do zespołu ekspertów! Backend lub Frontend Developer?

Sprawdź najnowsze oferty pracy naszego partnera - 8lines.io!

Optymalizacja bazy danych

Konfiguracja  Założony przez  Sepowaty.

Tak więc, jak niektórzy wiedzą, przeniosłem forum z SMF na MyBB.

Korzystam z hostingu MyDevil, gdzie jest MySQLi w wersji 5.7. Baza danych waży ~100 MB. Problem jest taki, że gdy uruchomię funkcję optymalizacji, albo naprawy tabel, to jestem pozbawiony forum na 2 godziny. Podobnie jest z wgrywaniem albo usuwaniem forum przez PMA. Zajmuje to naprawdę długo czasu. Na SMF z forum nie było problemów.

Na próbę wrzuciłem bazę danych na Zenboxa (MySQLi 5.5). Tam nie było, że baza danych optymalizowała się godzinami. Kwerenda wykonała się w 14,5 sekundy.

Zanim napiszę do hostingu, to chciałbym się upewnić, czy oby to nie moja wina.

Może to wina fulltexta? Konwersja na utf8md4 albo zmiana tabel na InnoDB? No nie wiem...

<?php

define
("IN_MYBB"1);
define("NO_ONLINE"1);
define("NO_PLUGINS"1);
require_once 
"global.php";
if(!
$mybb->usergroup['cancp'])
{
error_no_permission();
}
$tablelist $db->list_tables($config['database']['database'], TABLE_PREFIX);
foreach(
$tablelist as $table)
{
$db->write_query("ALTER TABLE "  $table " ENGINE=Innodb");
echo 
"Converted table $table to Innodb.<br />";
}
echo 
"Table conversion complete.<br />";
?>

Najgorszej, gdy zapomnę się, i zrzucę kopię db z optymalizacją w środku dniu.
Gdyby ktoś pytał, to wszędzie korzystam z PHP 7.

Ów skrypt na zmianę rodzaju tabel na InnoDB pomógł.

A nawet przyspieszył 3-krotnie zapytania do bazy danych. Także git.
Nie ma się co dziwić, że przyśpieszyło. MyISAM jako taki w zasadzie nie jest już rozwijany, Oracle czy MariaDB poszły w stronę InnoDB - a lepiej z niego korzystać bo jest szybszy, do tego bezpieczniejszy. No i też możesz korzystać z FULLTEXT, bo na MySQL 5.6+ InnoDB go obsługują.
Najbardziej mi zależało na tym, aby nie zmuliło db na parę godzin. Cel osiągnięty.
Witam,
nie wiem czy tworzyć nowy wątek, czy podpinać się pod ten temat, który znalazłem. Spróbuję się tutaj podpiąć.

Po instalacji MyBB wszystkie tabele posiadają domyślnie mechanizm myISAM. Chciałbym je przekonwertować na innoDB bo ostatnio czarę goryczy przelała sytuacja gdy zrobiłem snapshota vpsa i po jego odtworzenia kilka tabel myISAM z MyBB było uszkodzonych i nawet mysqlcheck nie dał radę ich naprawić. ;/

Dlatego mam prośbę o odpowiedź na pytanie, czy przejście z myISAM na innoDB nie spowoduje w MyBB jakiś ukrytych problemów?
Może spowodować problem z wyszukiwaniem fulltext - ale tylko jeśli używasz starej wersji bazy, która nie obsługuje takich indexów na InnoDB.
Przy o ile dobrze pamiętam MySQL 5.6+ oraz MariaDB 10.1+ problem nie występuje.

Ogólnie natomiast przejście na innodb to bardzo dobry pomysł.
Ok dziękuję za odpowiedź. :)
Mamy najnowszą wersję MariaDB więc powinno być wszystko w porządku.



Użytkownicy przeglądający ten wątek:

1 gości