标签:影响 并行 资源 信息 innodb mysql5.5 分析 级别 实践
主要是影响性能的因素
数据库性能在依赖以下几个数据库级别因素,比如,数据表,查询,配置。这些软件层的构造造成你必须尽可能的减少硬件层CPU和IO操作.
当你处理数据性能时,你首先学习软件层上高级别的规则和手册,使用时间来测量性能,当熟练后,你开始学习更多内在发生的事情,开始测量CPU时间片和IO操作.
让数据库程序运行更快的几个重要因素.
通常,让列有正确的数据类型,是否每个数据表的列是否对当前环境合适?比如,
对于经常执行更新的应用程序通常有更多的表,但是每个表的列较少,对于经常分析大量数据的应用程序,
经常有比较少的数据表,但是数据表有很多的列。
对于每个存储的优点和特色你是否有使用? 通常,选择有事务能力的存储引擎(比如InnoDB) 或者
选择没有事务能力的存储引擎(比如MyISAM)是影响伸缩和性能的一个重要因素.
注意: 在MySQL5.5和更高版本中,对于新建的数据表InnoDB是默认的存储引擎.
实践中,InnoDB良好的性能特色意味着它通常能比MyISAM 做的更好,特别是在一个繁忙的数据库中.
这个选择依赖于数据表所使用的存储引擎.通常,压缩表(compressed tables)格式使用更少的
磁盘空间,并且读取数据使用更少的磁盘IO,InnoDB数据表使用压缩格式适合于各种各样的负载.
对于只读的MyISAM数据表同样合适.
比如,使用共享的方式能够让数据库操作同时进行,使用排他的方式能够让冲突操作得到最先优先级.
再次声明,存储引擎的选择非常重要。InnoDB存储能够在你不许参与的前提下解决许多锁的问题,
能够让数据库有更大的并发性以此来减少你调整代码的次数和测量的次数。
也就是,内存大小是否大到足够缓存所有需要的数据,如果不太大会造成物理内存负载过高并造成页面调度.
主要配置的内存区域包括,InnoDB buffer pool,MyISAM key cache,MySQL query cache(数据库查询缓存).
随着数据库越来越繁忙,数据库最终会受到硬件的限制,DBA必须评估是否可以对程序进行调优,重新配置服务器或者给更多硬件资源
,以此来避免硬件瓶颈,系统瓶颈有以下几个方面:
磁盘寻道主要是磁盘寻找数据块的时间,当前磁盘一次寻道时间通常小于10ms,所以在我们理论上1s可以做100次磁盘寻道.
对于新的磁盘这个时间上升的很慢,但是对于单个数据表的优化十分重要.优化磁盘寻道时间的方法是把数据分散到多个磁盘上(并行读取数据).
当磁盘旋转到合适位置的时候,我们需要读取或者写入数据.当代磁盘磁盘传输数据的速度是10-20MB/s,比起寻道时间.这个
更容易优化,因为你可以在多个磁盘上进行并行读取.
.当数据在主内存时,我们必须对数据进行处理以此来寻找到我们需要的结果.使用大内存装载大数据表,CPU时间片是主要因素.
但是对于小数据表,CPU速度通常没那么重要.
当CPU需要更多的数据来填满CPU cache时,主内存带宽变成瓶颈.对于许多系统来说这个瓶颈并不常见.但是也应该意识到这个因素.
在可移植的MySQL应用中使用面向性能的SQL扩展,你可以在语句注释中(/*! */)包含MySQL特定的关键字.其他SQL服务器忽略注释关键字.
更多关于注释的信息,查看 Section 9.6, "Comment Syntax"
标签:影响 并行 资源 信息 innodb mysql5.5 分析 级别 实践
原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/9833882.html