当前位置:Gxlcms > 数据库问题 > 数据库性能简介

数据库性能简介

时间:2021-07-01 10:21:17 帮助过:41人阅读

  使数据库查询快的最重要的因素在于其开始设计阶段:

  1、表的结构是否合理?特别需要指出的是,列在表中是否使用正确的类型?例如:经常需要进行更新的表需要设计成多表少列,而需要大量分析的表需要设计成少表多列。

  2、是否使用索引来让查询更加高效?

  3、是否为每个表选择适当的存储引擎,并利用存储引用的优势和功能?需要强调的是:事务存储引擎(innodb,myisam:非事务)的选择对于性能和扩展性是非常重要的

  4、每张表是否使用正确的行格式,这个行格式还和存储引擎有关。强调的是压缩表使用较少的磁盘空间,因此使用较少的磁盘I/O来读取和写入数据,压缩可用于innodb的表和只读的myisam表

  5、应用程序是否使用了正确的锁策略?比如,在可能的情况下,通过允许数据共享的方式,以便数据库可以并发运行,并在适当的情况下独立请求,以便关键操作获得最高的优先级。同样,存储引擎的选择是很重要的,Innodb存储引擎可以处理大多的锁问题,无需要调用程序的参与,在数据库中实现更好的并发性,并减少参与测试和代码调试。

  6、用于缓存的所有内存区域是否使用正确?也就是说,需要足够大的内存来容纳经常访问的数据,但这个内存也不能超过物理内存并导致分页。要配置的内存区域主要有:InnoDB缓存池,myisam密钥缓存和mysql查询缓存。

硬件级别的优化

  随着数据库变得越来越繁忙,任何数据库应用最终都会遇到硬件瓶颈。DBA必须评估是否可以重新配置来避免这种瓶颈,或是否需要更多的硬件资源。系统的硬件瓶颈通常来自如下几方面:

  1、磁盘搜索,磁盘找到一条数据需要花费时间。对于现代的磁盘,平均时间通常低于10ms,因此理论上一秒钟可以寻找100次。使用磁盘来进行优化会很缓慢并且很难针对单个表进行优化,优化寻道时间的方法是将数据分布到多个磁盘上。

  2、磁盘读写,当磁盘在正确的位置时,我们需要读写数据。对于现代的磁盘,一个磁盘通常可以提供20M/s的吞吐量,这比查找更容易去优化,可以通过多个磁盘并行来读取

  3、CPU周期,当数据存储在内存中,我们需要去处理并且获取结果。内存大小相比大表的数据量,是最常见的限制因素,使用小表,速度通常不是问题。

  4、内存带宽,当cpu可以缓存更多的数据的时候,内存带宽就会成为瓶颈,这个对于大多数系统来说并不常见,但需要考虑。

 

数据库性能简介

标签:带宽   16px   调用   nod   限制   innodb   代码   设备   分页   

人气教程排行