22

MyISAM和InnoDB的不同优化

key_buffer_size – 这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。合理的值取决于索引大小、数据量以及负载。
记住,MyISAM表会使用操作系统的缓存来缓存数据,因此需要留出部分内存给它们,很多情况下数据比索引大多了。尽管如此,需要总是检查是否所有的 key_buffer 都被利用了。
.MYI 文件只有 1GB,而 key_buffer 却设置为 4GB 的情况是非常少的。这么做太浪费了。如果你很少使用MyISAM表,那么也保留低于 16-32MB 的 key_buffer_size 以适应给予磁盘的临时表索引所需。

继续阅读全文

15

二十种实战调优MySQL性能优化的经验

本文将为大家介绍的是二十条MySQL性能优化的经验,这些小经验有助于大家更好的使用MySQL进行WEB开发。今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。

继续阅读全文

19

mysql的数据压缩性能对比

数据,一旦写入就很少或者根本不会更新。这种数据非常适合压缩以降低磁盘占用。MySQL本身提供了两种压缩方式——archive引擎以及针对MyISAM引擎的myisampack方式。今天对这两种方式分别进行了测试,对比了二者在磁盘占用以及查询性能方面各自的优劣。

继续阅读全文

十二 14

DRBD+Heartbeat让MySQL提供的服务更加稳定

这段时间对DRBD和Heartbeat有了一个初步的了解,因为公司目前也在用,所以要好好搞一下,今天就在虚拟机打个了环境,亲自动手学习一下。这两个软件的安装都不复杂,如果你能用yum,那就是瞬间搞定的事情,没有的话用rpm包安装也是很轻松的事情,个人觉得,如果不是说地球上真的找不到和你平台对应的rpm包/tar包的话,那你就用源码包好了,自己享受编译带给你的“成就感”吧。不知道为什么很多时候大家都喜欢源码编来编去的,其实,你编译出来的东西不一定比人家专门的开发人员编出的软件效果要好,也可能你会说了,自己编译自由想放哪儿就放哪儿(难道就这么点追求),如果你习惯了rpm,其实,它的安装目录就那么几个位置,况且rpm也有命名选项帮你找出来。

继续阅读全文

十二 14

mysqld服务器CPU/IOWAIT瞬间出现峰值的问题

自从nagios报警服务配置完善以后,潜伏在DB上的问题变得愈加凸显,这期间还经历了三番五次的机器故障,于是就更加紧绷了我们对于目前DB状态的关注度,通过cacti看每组机器资源的使用情况,通过nagios的alert提示会知道哪些异常在频繁出现,尽管没有发出报警通知(报警策略:所有服务检测每个5分钟扫描一次,发现故障第一次提示开始,每隔1分钟再去尝试,一共4次,当确认该服务失败或者超过阀值后,将状态从之前的Soft更新为Hard,然后便会发出邮件触发139邮箱短信报警,报警邮件的周期为每30钟一次)。观察每个时段nagois的alert提示,同时比对该事件点在cacti上的资源使用情况,给我们一步步排查异常提供了线索。

继续阅读全文

十二 02

MySQL5.5复制/同步的新特性及改进

默认情况下MySQL的复制是异步的,Master上所有的更新操作写入Binlog之后并不确保所有的更新都被复制到Slave之上。异步操作虽然效率高,但是在Master/Slave出现问题的时候,存在很高数据不同步的风险,甚至可能丢失数据。MySQL5.5引入半同步复制功能的目的是为了保证在master出问题的时候,至少有一台Slave的数据是完整的。在超时的情况下也可以临时转入异步复制,保障业务的正常使用,直到一台salve追赶上之后,继续切换到半同步模式。

继续阅读全文