数据库面试题【十九、数据库优化】

简介: 数据库面试题【十九、数据库优化】

为什么要优化


系统的吞吐量瓶颈往往出现在数据库的访问速度上


随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢


数据是存放在磁盘上的,读写速度无法和内存相比


优化原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。


数据库结构优化


一个好的数据库设计方案对于数据库的性能往往会起到事半功倍的效果。


需要考虑数据冗余、查询和更新的速度、字段的数据类型是否合理等多方面的内容。


将字段很多的表分解成多个表


对于字段较多的表,如果有些字段的使用频率很低,可以将这些字段分离出来形成新表。


因为当一个表的数据量很大时,会由于使用频率低的字段的存在而变慢。


增加中间表


对于需要经常联合查询的表,可以建立中间表以提高查询效率。


通过建立中间表,将需要通过联合查询的数据插入到中间表中,然后将原来的联合查询改为对中间表的查询。


增加冗余字段


设计数据表时应尽量遵循范式理论的规约,尽可能的减少冗余字段,让数据库设计看起来精致、优雅。但是,合理的加入冗余字段可以提高查询速度。


表的规范化程度越高,表和表之间的关系越多,需要连接查询的情况也就越多,性能也就越差。


注意:


冗余字段的值在一个表中修改了,就要想办法在其他表中更新,否则就会导致数据不一致的问题。


MySQL数据库cpu飙升到500%的话他怎么处理?


当 cpu 飙升到 500%时,先用操作系统命令 top 命令观察是不是 mysqld 占用导致的,如果不是,找出占用高的进程,并进行相关处理。


如果是 mysqld 造成的, show processlist,看看里面跑的 session 情况,是不是有消耗资源的 sql 在运行。找出消耗高的 sql,看看执行计划是否准确, index 是否缺失,或者实在是数据量太大造成。


一般来说,肯定要 kill 掉这些线程(同时观察 cpu 使用率是否下降),等进行相应的调整(比如说加索引、改 sql、改内存参数)之后,再重新跑这些 SQL。


也有可能是每个 sql 消耗资源并不多,但是突然之间,有大量的 session 连进来导致 cpu 飙升,这种情况就需要跟应用一起来分析为何连接数会激增,再做出相应的调整,比如说限制连接数等。


相关文章
|
6天前
|
缓存 监控 关系型数据库
优化数据库查询性能的五个技巧
在当今互联网时代,数据库查询性能是开发人员面临的重要挑战之一。本文将介绍五个有效的技巧,帮助开发人员优化数据库查询性能,提升系统的响应速度和稳定性。
|
5天前
|
数据可视化 Linux 数据库
探索 Linux 命令 `db_tuner`:优化数据库性能的利器
`db_tuner` 是一个假设的 Linux 工具,用于数据库性能优化,提供状态检查、查询分析、配置调优、索引建议及报告生成等功能。虽然不是真实命令,但类似工具如 `mysqltuner` 可实现这些功能。通过安装和运行 `db_tuner`,DBA 可以提升数据库性能,解决瓶颈问题。
|
7天前
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结
MySQL数据库——SQL优化(3/3)-limit 优化、count 优化、update 优化、SQL优化 小结
13 0
|
7天前
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
12 0
|
7天前
|
存储 SQL 关系型数据库
MySQL数据库——SQL优化(1/3)-介绍、插入数据、主键优化
MySQL数据库——SQL优化(1/3)-介绍、插入数据、主键优化
16 1
|
8天前
|
存储 缓存 测试技术
数据库在云存储环境中的配置与优化
【6月更文挑战第6天】探讨数据库在云存储的配置与优化,包括选择合适云服务、设计高效架构、查询语句优化、参数调整、数据分区索引、备份恢复策略、资源监控及性能测试。通过实践与学习,提升应对云环境中的数据库挑战能力。如有问题,欢迎讨论。
30 0
|
8天前
|
存储 缓存 分布式数据库
数据库性能优化方向的三大类别
【6月更文挑战第6天】本文介绍了数据库优化策略,包括集中式数据库的反规范化设计(如增加冗余列、派生列、重组合表、水平和垂直分表)和数据一致性保障;这些方法旨在提升性能、确保数据安全和适应大规模数据场景。
30 1
数据库性能优化方向的三大类别
|
8天前
|
存储 SQL 缓存
Java性能优化(十)-数据库调优-数据库参数设置优化
Java性能优化(十)-数据库调优-数据库参数设置优化
11 0
|
10天前
|
SQL 存储 数据库
sql数据库面试题
以下是一些SQL数据库的面试题: 1. 什么是SQL?你能简要描述一下它的特点吗? 2. SQL中的主键和外键是什么?它们有什么作用? 3. 你能解释一下什么是索引吗?索引在数据库中的作用是
|
11天前
|
数据库 SQL 存储
在编制代码时优化数据库操作性能
【6月更文挑战第3天】本文介绍了代码中可使用的SQL语句优化策略,了解并应用本文介绍的这些技巧可显著提升数据库性能。
20 2