摘要: MySQL支持插件式存储引擎,常用的存储引擎则是MyISAM和InnoDB,通常在OLTP(Online Transaction Processing 在线事务处理)中,我们选择使用InnoDB,所以弄清楚Innodb体系架构,有助于我们更深刻的理解innodb的工作原理,以及更好的使用innodb,以及优化。从上图大致可以看到innodb有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作:1.维护所有进程/线程需要访问的多个内部数据结构。2.缓存磁盘上的数据,方便快速的读取,同时在对磁盘文件的数据修改之前在这里缓存。3.重做日志(redo log)缓冲一.后台线程的主要作用是 阅读全文
posted @ 2014-03-06 23:16 yayun 阅读(1728) 评论(0) 推荐(1) 编辑
摘要: 前不久去面试,被问到Innodb引擎的表如何改数据库名,当时我也只回答了MyISAM改如何操作,被一些细节问题打败,真是操蛋。如果表示MyISAM那么可以直接去到数据库目录mv就可以。Innodb完全不行,自己测试过,会提示相关表不存在。第一种方法:RENAME database olddbname TO newdbname这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有丢失数据的危险第二种方法:1.创建需要改成新名的数据库。2.mysqldum 导出要改名的数据库3.删除原来的旧库(确定是否真的需要)当然这种方法虽然安全,但是如果数据量大,会比较耗时,哎,当时连这种方法都没有 阅读全文
posted @ 2014-03-06 17:08 yayun 阅读(76539) 评论(2) 推荐(5) 编辑
摘要: 本文来自david大神的博客,innodb技术内幕的作者。http://insidemysql.blog.163.com/blog/static/202834042201385190333/MySQL数据库的成功离不开其replicaiton,相对于Oracle DG和Microsoft SQL Server Log Shipping来说,其简单易上手,基本上1,2分钟内根据手册就能完成环境的搭建。然而,随着使用的深入,replication自身的问题会慢慢显露,其中非crash safe的特性使得许多DBA感到头疼,甚至不能理解其所发问题的原因。简单来说,crash-safe replica 阅读全文
posted @ 2014-03-06 11:13 yayun 阅读(1056) 评论(0) 推荐(0) 编辑