关于MySQL的优化
1、硬盘搜索。现代磁盘的平均时间通常小于10ms,因此在理论上,我们可以搜索1000次,所以它是我们搜索一个数据盘困难等。一种方法是在多个磁盘上分发数据。
2、IO读写。至于盘而言,10-20mb /的普遍传播,和相同的,优化可以读写多个磁盘的并行。
3,CPU周期。我们把数据读到内存中,我们需要处理它并得到我们需要的结果。相对于较小的内存来说,这是一个常见的限制因素。但是对于小表来说,速度通常不是问题。
4。内存带宽:当CPU所需的数据超过CPU缓存时,主缓存带宽成为内存的瓶颈。
谈谈MySQL设计中的瓶颈:(我知道它的数据库引擎,wiki上的一些缺陷)。
MyISAM是MySQL默认的数据库引擎(前5.5版),由早期的改善。虽然性能优良,但有一个缺点:不支持代码错误!(交易)。然而,近年来,MySQL也进口InnoDB(另一个数据库引擎)来提高代码错误和并发的违规处理机制,然后逐渐取代MyISAM。
每个MyISAM数据表是由存储在硬盘上的文件3。每个文件以数据表的名称作为主文件名,并将文件类型与不同的扩展名区分开来。
。存储在表中定义的FRM的数据,这是不的MyISAM引擎的一部分。
MYD实时数据的存储。
我的索引信息存储。
1、InnoDB可以恢复数据错误,死机或退出的事务日志意外造成的,MyISAM必须完成扫描,重建索引或纠正不成文的硬盘错误时遇到错误。InnoDB的修复时间是固定的,但MyISAM修复时间是数据量成正比。相比之下,随着数据量的增加,会有更好的稳定性。
2,MyISAM必须依靠操作系统来管理读写缓存,而InnoDB有自己的读写缓存管理机制。(InnoDB不改变修改代码错误!立即向操作系统),所以在某些情况下,InnoDB的数据访问会比MyISAM更有效。
3,我们目前不支持由MyISAM提供的压缩和简洁的行格式,所以硬盘缓存的使用是非常大的。所以,从一开始的5版MySQL,提供另一个负载较轻的格式,他可减少约20%的系统负载,而压缩功能已计划推出在未来的新版本。
4,当操作完全与酸兼容(代码错误!),而InnoDB会自动合并多个连接,但每次有代码错误!产生后,仍然必须至少一次写入硬盘,因此对于一些硬盘或磁盘阵列,将导致代码错误每秒200次处理限制。如果要达到更高的性能并保持代码错误的完整性!,你将使用磁盘高速缓存和后备电池。当然,我们也提供低性能影响的几种模式,但它也降低了错误代码的完整性!和MyISAM不存在这个问题,但这并不是因为它更先进,因为它不支持代码错误!
(InnoDB,MySQL的数据库引擎之一,是发行二MySQL ab.innodb的标准之一是由级公司开发和被收购的甲骨文公司在2006年5月。与传统的ISAM和MyISAM和InnoDB相比最大的特点是支持符合ACID事务(transaction)的功能,类似于PostgreSQL。)