Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL ефективно копира всички записи от една таблица в друга

Само едно нещо ти липсва. Особено, ако използвате InnoDB, искате ли изрично да добавите клауза ORDER BY в израза си SELECT, за да сте сигурни, че вмъквате редове в ред на първичен ключ (клъстериран индекс):

INSERT INTO product_backup SELECT * FROM product ORDER BY product_id

Помислете за премахване на вторични индекси от резервната таблица, ако не са необходими. Това също ще спести малко натоварване на сървъра.

И накрая, ако използвате InnoDB, намалете броя на заключванията на редове, които са необходими и просто заключете изрично и двете таблици:

LOCK TABLES product_backup WRITE;
LOCK TABLES product READ;
INSERT INTO product_backup SELECT * FROM product ORDER BY product_id;
UNLOCK TABLES;

Заключването вероятно няма да има голяма разлика, тъй като заключването на редове е много бързо (макар и не толкова бързо, колкото заключването на таблица), но тъй като вие поискахте.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL импортира данни от csv с помощта на LOAD DATA INFILE

  2. изберете count(*) от таблицата на mysql в php

  3. mysqli последното вмъкване на идентификатор

  4. ГРЕШКА 1045 (28000):Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:НЕ)

  5. MySQL пълнотекстово търсене в множество колони:резултат объркване