asdsInnoDB 存储引擎的性能问题:
ddsdss①、选择合适的CPU ddsdss②、内存的重要性 ddsdss③、硬盘对数据库性能的影响 ddsdss④、合理地设置RAID ddsdss⑤、操作系统的选择也很重要 ddsdss⑥、不同文件系统对数据库的影响 ddsdss⑦、选择合适的基准测试工具
asdsadasdasdasdsadasdasdasdsadassdasdsadasdasdsadasdsadassadasdas————《MySQL技术内幕INNODB存储引擎》
选择合适的CPU
ssdss当前数据库的应用类型一般分为两大类:OLTP、OLAP。OLAP 多用在数据仓库或数据集市中,一般需要执行复杂的SQL 语旬来进行查询; OLTP 多用在日常的事物处理应用中,如银行交易、在线商品交易、Blog 、网络游戏等应用。相对于OLAP,数据库的容量较小。
ssdssInnoDB 存储引擎一般都应用于OLTP 的数据库应用:
ssddsss①、用户操作的并发量大
ssddsss②、事务处理的时间一般比较短
ssddsss③、查询的语句较为简单,一般都走索引
ssddsss④、复杂的查询较少
ssddsss OLTP 的数据库应用本身对CPU 的要求并不是很高,因为复杂的查询可能需要执行比较、排序、连接等非常耗CPU 的操作,这些操作在OLTP 的数据库应用中较少发生。因此,可以说 OLAP 是CPU 密集型的操作,而OLTP 是IO 密集型的操作。建议在采购设备时,将更多的注意力放在提高IO 的配置上。
ssddsss注 1:从InnoDB 存储引擎的设计架构上来看,其主要的后台操作都是在一个单独的master thread 中完成的, 因此并不能很好地支持多核的应用。当然,开源社区已经通过多种方法来改变这种局面,而InnoDB 1.0 版本在各种测试下已经显示出对多核CPU 的处理性能的支持有了极大的提高,而InnoDB 1.2 版本又支持多个purge 线程,以及将刷新操作从master thread 中分离出来。因此,若用户的CPU 支持多核, InnoDB 的版本应该选择1.1 或更高版本。另外,如果CPU 是多核的,可以通过修改参数 innodb_read_io_threads 和innodb_ write_io_threads 来增大IO 的线程,这样也能更充分有效地利用CPU的多核性能。
ssddsss注 2:在当前的MySQL 数据库版本中, 一条SQL 查询语句只能在一个CPU 中工作,并不支持多C PU 的处理。OLTP 的数据库应用操作一般都很简单,因此对OLTP 应用的影响并不是很大。但是,多个CPU 或多核CPU 对处理大并发最的请求还是会有帮助。
内存的重要性
ssdss内存的大小是最能直接反映数据库的性能。InnoDB 存储引擎既缓存数据,又缓存索引,并且将它们缓存于一个很大的缓冲池中,即 InnoDB Buffer Pool 。因此,内存的大小直接影响了数据库的性能。
ssdss注 3 :在上述测试中,数据和索引总大小为18GB, 然后将缓冲池的大小分