Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MyISAM กับ InnoDB ใน MySQL?


ทั้งสองประเภทเป็นเครื่องยนต์ ต่อไปนี้คือข้อความค้นหาที่ทำให้เราทราบว่ากำลังใช้เครื่องยนต์และตารางประเภทใด อันดับแรก เราจะเลือกฐานข้อมูลโดยใช้คำสั่ง USE -

mysql> USE business;ฐานข้อมูลมีการเปลี่ยนแปลง

นี่คือแบบสอบถามที่เราสามารถทราบได้ว่ามีการใช้ตารางหรือเครื่องมือใด -

mysql> แสดงสถานะตาราง

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+--------------------------------------+---------+---------+-- ---------------------------+----------------+-------------+- -------------------------------------------------------------- -------------------------------+-------------+--- --------------+--------------------------+----------+------- --------+---------+|ชื่อ | เครื่องยนต์ | เวอร์ชั่น | Row_format | แถว | Avg_row_length | Data_length |Max_data_length | Index_length | Data_free | Auto_increment | Create_time |Update_time | Check_time | การเรียง | เช็คซัม | Create_options | ความคิดเห็น |+--------------------------------------+--------+---------+- ---------------------+---------------------------------------+ ----------------------------------------------------------+----------- -------------------------------+-------------+-- -------------------------------+----------+------- ---------+---------+| addcolumntable | InnoDB | 10 | ไดนามิก | 0 | 0 | 16384 | 0 | 0 | 0 | NULL |2018-09-27 13:14:31 | NULL |NULL |utf8mb4_0900_ai_ci |NULL | | || เพิ่มค่าอัตโนมัติ | InnoDB | 10 | ไดนามิก | 4 | 4096 | 16384 | 0 | 0 | 0 | 4 |2018-10-06 13:28:25 | NULL |NULL |utf8mb4_unicode_ci | NULL | | || autoincrementtable | InnoDB | 10 | ไดนามิก | 5 | 3276 | 16384 | 0 | 0 | 0 | 1001 |2018-10-04 09:39:47 | NULL | NULL |utf8mb4_unicode_ci | NULL | | || bookindexes | InnoDB | 10 | ไดนามิก | 4 | 4096 | 16384 | 0 |16384 | 0 | NULL | 2018-10-01 16:28:10 | NULL | NULL |utf8mb4_unicode_ci | NULL | | || ชาร์เดโม่ | InnoDB | 10 | ไดนามิก | 0 | 0 | 16384 | 0 |0 | 0 | NULL | 2018-09-28 11:00:28 | NULL | NULL | utf8mb4_0900_ai_ci |NULL | | || โคลนนิ่ง | InnoDB | 10 | ไดนามิก | 3 | 5461 | 16384 | 0 |32768 | 0 | NULL | 2018-10-10 09:36:03 | NULL | NULL |utf8mb4_unicode_ci | NULL | | || columnvaluenulldemo | InnoDB | 10 | ไดนามิก | 2 | 8192 | 16384 | 0 |0 | 0 | NULL | 2018-10-05 12:06:27 | NULL | NULL |utf8mb4_unicode_ci | NULL | | || dateadddemo | InnoDB | 10 | ไดนามิก | 0 | 0 | 16384 | 0 |0 | 0 | NULL | 2018-10-08 09:47:46 | NULL | NULL | utf8mb4_unicode_ci | NULL | | || ลบอีโม | InnoDB | 10 | ไดนามิก | 5 | 3276 | 16384 | 0 |0 | 0 | NULL | 2018-10-09 17:18:38 | NULL | NULL | utf8mb4_unicode_ci | NULL | | || deleterecord | InnoDB | 10 | ไดนามิก | 6 | 2730 | 16384 | 0 |

ดังนั้น ใน MySQL เวอร์ชัน 8.0.12 ตารางกำลังใช้เครื่องมือ "innodb" แต่เราสามารถเปลี่ยนประเภทเครื่องยนต์เป็น MyISAM ได้

นี่คือแบบสอบถามที่จะเปลี่ยน -

mysql> SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME,' ENGINE=MyISAM;') -> จาก Information_schema.TABLES โดยที่ TABLE_SCHEMA ='sample' AND ENGINE -> ='InnoDB' และ TABLE_TYPE ='mytable';ชุดว่าง (0.05 วินาที)