использую PHP PDO для работы с базой, з mysqli тлже самое.
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- //================================================
- здесь некоторый код
- //================================================
- //отключаю индекс
- try {
- $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- $s_1 = "ALTER TABLE t1 DISABLE KEYS";
- $s_2 = "ALTER TABLE t2 DISABLE KEYS";
- $s_3 = "ALTER TABLE t3 DISABLE KEYS";
- $s_4 = "ALTER TABLE t4 DISABLE KEYS";
- $s_5 = "ALTER TABLE t5 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();
- }
- //===================================
- здесь некоторый код
- //===================================
- $s_1 = ...;
- $s_2 = ...;
- $s_3 = ...;
- $s_4 = ...;
- $s_5 = ...;
- //==============================================
- //здесь несколько тысяч запросов 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 t1 ENABLE KEYS";
- $s_2 = "ALTER TABLE t2 ENABLE KEYS";
- $s_3 = "ALTER TABLE t3 ENABLE KEYS";
- $s_4 = "ALTER TABLE t4 ENABLE KEYS";
- $s_5 = "ALTER TABLE t5 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();
- }
- //======================================================