首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么因素影响了数据库的性能

数据库好比人的大脑的记忆系统,没有了数据库就没有了记忆系统。

它是长期储存在计算机内、有组织的、可共享的数据集合。

可视为存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

我们常说优化数据库,到底是什么因素影响了数据的性能呢?

影响数据库性能主要因素:

1、商业需求对性能的影响,不合理需求造成资源投入产出比过低,可采用需求评审,字段分析,设计评审。

2、系统架构(存储架构)及实现对性能的影响,排查流水队列数据、二进制多媒体数据、超大的文本数据、其它用户上传的文件、图片等资源。

3、query语句对数据库性能的影响,建议查询过程和结果需共同关注。

1)查询出的数据量过大,采用多次查询、定位查询、和查询数据量控制。

2)锁或者死锁,排查代码设计逻辑。

3)返回不必要的行和列,尽量查询少的行和列,将数据遍历时间降到最低。

4)查询语句不够优化,可采取在持久层或持久层之上做缓存,数据库表的大字段剥离,使用表的拆分,判断磁盘上数据存放的内外磁道获取的效率,放弃关系数据库的某些特性。

5)索引,是否使用了索引,索引类型是否合适。

6)隐式转换,如数据格式不统一。

7)SQL是否全表扫描,查看执行计划并修改查询语句,减少全表扫描。

4、Schema设计对系统性能影响,考虑字段选型、表列数、字段冗余、大小字段拆分、单表行数拆分。

5、硬件环境对数据库的性能的影响,可根据系统特性及成本选择更适合的硬件设备。

1)I/O吞吐量小,形成了瓶颈效应 I/O吞吐量是影响数据访问速度的客观因素(硬件因素)。

2)内存不足,可采取分而治之/hash映射 + hash统计 + 堆/快速/归并排序、双层桶划分、Bloomfilter/Bitmap、Trie树/数据库/倒排索引、外排序、分布式处理之Hadoop/Mapreduce,或者扩容。

6、系统环境,如OS、DB版本、参数配置。

7、系统规模,评估并发量、数据量、用户量。

8、代码设计,减少使用OR、LIKE等语句写法、过多表关联、表结构、过度范式。

9、业务模型及架构,如单服务器支撑、OLTP&OLAP混合。

10、阻塞,等待,如数据库连接池占满、数据库内部运行。

11、参数嗅探,使用本地变量,使用EXEC执行动态SQL,这样会重编译,存储过程使用Recompile,使用QUERY HINT指定执行计划等。

12、执行计划突变,减少动态sql的使用,或固化sql。

13、超高的QPS和TPS,可参考分布式数据库,或者运用NoSQL技术如:MongoDB,Hbase,TiDB等,合适的库存储最合适的数据类型。

14、大表,采取分库分表、历史数据归档、避免一次处理太多的数据,分批分时间段执行。

15、网卡流量,减少从服务器的数量、进行分级缓存、避免使用“select * ”进行查询、分离业务网络和服务器网络。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180522G19MNB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券