MYSQL优化之存储引擎
1 查看系统支持的存储引擎
show engines;
2 查看表使用的存储引擎
show table status from db_name wherename='table_name';
3修改表引擎方法
alter table table_name engine=innodb;
4建表时指定存储引擎
id INTUNSIGNED NOT NULL AUTO_INCREMENT,
nameVARCHAR(30) NOT NULL DEFAULT '' UNIQUE,
PRIMARYKEY(id)
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
5关闭Innodb引擎方法
关闭mysql服务: net stop mysql找到mysql安装目录下的my.ini文件:
找到default-storage-engine=INNODB改为default-storage-engine=MYISAM
找到#skip-innodb 改为skip-innodb
启动mysql服务:net start mysql
6各种存储引擎之间的区别
MyISAM (查、无事务)适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作直到读操作完成。另外,MyISAM 对于 SELECTCOUNT(*) 这类的计算是超快无比的。
InnoDB (其它操作和事务)的趋势会是一个非常复杂的存储引擎,对于一些小的应用,它会比 MyISAM 还慢。他是它支持“行锁” ,于是在写操作比较多的时候,会更优秀。并且,他还支持更多的高级应用,比如:事务。
memory:速度极快,但它存在于内存中,重启MYSQL后,数据将丢失。可用作一种缓存技术。
详细的可以见下图。
7 MYISAM碎片整理
别外,如果存储引擎为myisam,就一定要定时的进行碎片整理。因为删除记录文件大小不会变小。
利用命令:optimize table table_name;来进行碎片整理。当然它也可以在PHP程序中进行调用。