标签归档:InnoDB

mysql 的 MyISAM和 InnoDB的区别

  一、文件存储     MyISAM   每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。   .frm文件存储表定义。   数据文件的扩展名为.MYD (MYData)。   索引文件的扩展名是.MYI (MYIndex)。   InnoDB   基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB   二、事务支持   MyISAM   MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持   InnoDB   InnoDB提供事务支持事务,外部键等高级数据库功能   三、mysql执行方式   MyISAM   如果执行大量的SELECT,MyISAM是更好的选择   InnoDB   1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表   2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。   3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用   四、AUTO_INCREMENT   每表一个AUTO_INCREMEN列的内部处理。   MyISAM为INSERT和UPDATE操作自动更新这一列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。   AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置   对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引   更好和更快的auto_increment处理   INNODB   如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。   自动增长计数器仅被存储在主内存中,而不是存在磁盘上   关于该计算器的算法实现,参考AUTO_INCREMENT列在InnoDB里如何工作 … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论

mysql 无故崩溃,自动退出解决方案

最近博客服务器的mysql mysql经常崩溃,挂了,不过我发现了的时候,重启就好了。基本一周来一次 2016-09-20 15:17:04 13896 [Note] Event Scheduler: Loaded 0 events 2016-09-20 15:17:04 13896 [Note] /opt/lampp/sbin/mysqld: ready for connections. Version: ’5.6.21′ socket: ‘/opt/lampp/var/mysql/mysql.sock’ port: 3306 Source distribution 2016-09-21 13:34:04 27385 mysqld_safe Number of processes running now: 0 2016-09-21 13:34:04 27385 … 继续阅读

发表在 数据库 | 标签为 , , | 留下评论