Μετατροπή όλων των πινάκων σε InnoDB από MyISAM

Το InnoDB είναι πιο γρήγορο για το wordpress. Εκτός αυτού είναι λιγότερο πιθανό να κρασάρουν πίνακες.

SET @DATABASE_NAME = 'name_of_your_db';

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM    information_schema.tables AS tb
WHERE   table_schema = @DATABASE_NAME
AND     `ENGINE` = 'MyISAM'
AND     `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name DESC;

Για stored procedure:

DROP PROCEDURE IF EXISTS convertToInnodb;
DELIMITER //
CREATE PROCEDURE convertToInnodb()
BEGIN
mainloop: LOOP
  SELECT TABLE_NAME INTO @convertTable FROM information_schema.TABLES
  WHERE `TABLE_SCHEMA` LIKE DATABASE()
  AND `ENGINE` LIKE 'MyISAM' ORDER BY TABLE_NAME LIMIT 1;
  IF @convertTable IS NULL THEN 
    LEAVE mainloop;
  END IF;
  SET @sqltext := CONCAT('ALTER TABLE `', DATABASE(), '`.`', @convertTable, '` ENGINE = INNODB');
  PREPARE convertTables FROM @sqltext;
  EXECUTE convertTables;
  DEALLOCATE PREPARE convertTables;
  SET @convertTable = NULL;
END LOOP mainloop;

END//
DELIMITER ;

CALL convertToInnodb();
DROP PROCEDURE IF EXISTS convertToInnodb;

Σχετικά με Θεόδωρος Τασσόπουλος

Τεχνολόγος Ηλεκτρονικός Μηχανικός. - Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας
* MSc in Networking & Data Communications. - Kingston University
* MSc in Banking, Accounting and Finance. - University of Nicosia

Ασχολούμαι με τον προγραμματισμό από τις αρχές του 2000.

Τα τελευταία πέντε έτη ασχολούμαι με την Διοικητική Πληροφόρηση και το Business Intelligence γενικότερα.

Ξεκινάω συνεχώς νέα project χωρίς να υπάρχει απαραίτητα η προοπτική του κέρδους. Είμαι λάτρης των θετικών επιστημών και θαυμαστής αυτών που τις αντιλαμβάνονται.

Δεν ήθελα ποτέ να γίνω αστροναύτης, παρόλα αυτά έχω τεράστιο ενδιαφέρον για το σύμπαν και την δημιουργία του. Διαβάζω και παρακολουθώ ότιδήποτε έχει να κάνει με το "Outer Space".
Δημοσιεύθηκε στην SQL. Αποθηκεύστε τον μόνιμο σύνδεσμο.

Αφήστε μια απάντηση