|
MySQL.RU - Webboard
Вернуться
ALTER TABLE `table` DISABLE KEYS работает мед (Roman) 22/12/2016 - 00:30:05
Re: почему бы и нет? (Akina) 22/12/2016 - 07:39:16
From: Roman - 22/12/2016 - 00:30:05
Subject:ALTER TABLE `table` DISABLE KEYS работает мед
-----------------
ALTER TABLE `table` DISABLE KEYS работает медленнее чем когда включена индексация.
использую PHP PDO для работы с базой.
//================================================
здесь некоторый код
//================================================
//отключаю индекс
try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$s_1 = "ALTER TABLE full_gen DISABLE KEYS";
$s_2 = "ALTER TABLE gen_codon DISABLE KEYS";
$s_3 = "ALTER TABLE gen_nucleotid DISABLE KEYS";
$s_4 = "ALTER TABLE gen_amino DISABLE KEYS";
$s_5 = "ALTER TABLE gen_data DISABLE KEYS";
$dbh->exec($s_1);
$dbh->exec($s_2);
$dbh->exec($s_3);
$dbh->exec($s_4);
$dbh->exec($s_5);
} catch (Exception $e) {
echo $e->getMessage();
}
//==============================================
//здесь несколько тысяч запросов inser в 5 таблиц (крутится в цикле)
try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$dbh->exec($s_1);
$dbh->exec($s_2);
$dbh->exec($s_3);
$dbh->exec($s_4);
$dbh->exec($s_5);
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo $e->getMessage();
}
//================================================
//включаю индекс
try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$s_1 = "ALTER TABLE full_gen ENABLE KEYS";
$s_2 = "ALTER TABLE gen_codon ENABLE KEYS";
$s_3 = "ALTER TABLE gen_nucleotid ENABLE KEYS";
$s_4 = "ALTER TABLE gen_amino ENABLE KEYS";
$s_5 = "ALTER TABLE gen_data ENABLE KEYS";
$dbh->exec($s_1);
$dbh->exec($s_2);
$dbh->exec($s_3);
$dbh->exec($s_4);
$dbh->exec($s_5);
} catch (Exception $e) {
echo "Помилка: " . $e->getMessage();
}
//==========================================================================================================
в результате с выключением индексов работает на 20% медленнее, чем простой insert
таблиці myisam
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43708
|
|