数据库调优分层思想

数据库调优分层思想

1.调优策略

1)*号的处理(只提取必要字段,减少流量)

最好是用,有用的字段,减少流量。

表结构会改变,增加或者减少某列,如果*号全部查询出来 会造成代码逻辑错误。

2)大SQL(拆分,逐步缩小结果集)

大SQL执行起来非常耗时, where 后面带子句,或者读表联合查询。 或者临时表 暂时存储结果集

3)合理的索引(where子句后面的条件)

4)类型转换(‘’符号的使用)

在进行查询操作的时候把  ‘’带上

5)尽量不要用范围查询,或者缩小检索范围(程序逻辑update)

<,>,like,这样模糊查询,不好,

2.哪些SQL语句需要调优

1)找开发要

2)查看程序日志(接口——后台服务)

3)查看慢查询日志

4)查看统计:最多调用,最占流量,最慢查询(100ms)。。监控系统,

5)show full processlist

3.SQL配置层面

3.1 哪些配置需要关注

Query_cache:mysql自带的功能,查询的缓存, 保存的结果集, 放在缓存里

Max_connection:数据库最大链接数。 可以改动链接数,和业务程序的连接池做对应的关系。

Wait_timeout:数据每八小时检测一次,如果没有链接访问它。它就关闭了。避免这个问题,每八小时链接数据库,保证程序一直访问它

Lock :进程操作,保证另外的进程不对他做改变,所以 一个进程操作它的时候,就先锁起来,等操作完再开放给另外的进程去使用。

如果占用时间长,另外的程序就一直在等待。

解决锁的问题,一条SQL语句不能执行太长, 大SQL分解为小SQL。

4.SQL架构层面

1)主从复制(读写分离)

如果都对一个表进行读写,导致CPU飙升。压力大等。

可以把一份数据库复制到几个数据库,读的时候在从库读,写的时候放在主库。

2)分库分表

3)负载均衡

LV5,F5,nginx

负载均衡 是让压力更均匀的分布在数据库之间

4) 多级缓存

Redis

5.业务层面的思考

1) 表字段拆分

某些列不常用,甚至不用

2)text(适用key-value)

拆分出来,新建一个详情表

方便运维(DDL),便于缓存,提高查询性能

冷数据备份

每年把历史数据导出去一次,缩小检索范围

程序逻辑的处理

Update全表的例子

时间: 2025-01-14 07:20:28

数据库调优分层思想的相关文章

MySQL面试必考知识点:揭秘亿级高并发数据库调优与最佳实践法则

做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总: 数据库事务特性和隔离级别: 详解关系型数据库.索引与锁机制: 数据库调优与最佳实践: 面试考察点及加分项. 知识点汇总 一.数据库的不同类型 1.常用的关系型数据库 Oracle:功能强大,主要缺点就是贵 MySQL:互联网行业中最流行的数据库,这不仅

[转]10分钟梳理MySQL知识点:揭秘亿级高并发数据库调优与最佳实践法则

转:https://mp.weixin.qq.com/s/RYIiHAHHStIMftQT6lQSgA 做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总: 数据库事务特性和隔离级别: 详解关系型数据库.索引与锁机制: 数据库调优与最佳实践: 面试考察点及加分项. 一.数据库的不同类型 1.常用的关系型数

记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?)

记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?) 前几天帮客户优化一个数据库,那个数据库的大小是6G 这麽小的数据库按道理不会有太大的性能问题的,但是客户反应说CPU占用很高,经常达到80%~90% 我检查了任务管理器,确实是SQLSERVER占的CPU 而服务器的内存是16G内存,只占用了7G+ 客户的环境: Windows2008R2 SQLSERVER2005 SP3 64位 企业版 服务器内存:16G CPU:8核 RDS:阿里云主机

(转)从“如何设计用户超过1亿的应用”说起—数据库调优实战

摘要:如果企业计划构建高性能的SaaS应用,仅凭云服务基础设施是不够的.如何基于云服务平台设计并实施符合自身业务特点的系统架构,是决定产品性能的关键.本文将讲述我们如何利用云服务,解决海量用户的数据库使用问题. 杭州湖畔网络技术有限公司是一家专业提供SaaS化电商ERP服务的创业公司,主要用户群体为经营淘宝.天猫.京东等主流电商平台.自建商城.线下渠道的商家及中小企业.作为SaaS服务提供商,服务数万乃至数十万级用户是业务架构初期就必须考虑的问题.庞大的用户群以及海量的用户数据意味着基础设施的构

数据库调优的方法有那些

1.引言        数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素.将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能:适当程度的非规范化可以改善 系统查询性能:建立索引和编写高效的SQL 语句能有效避免低性能操作:通过锁的调优解 决并发控制方面的性能问题.     数据库调优技术可以在不同的数据库系统中使用,它不必纠缠于复杂的公式和规则,然 而它需要对程序的应用.数据库管理系统.查询处理.并发控制.操作系统以及硬件有广泛 而深刻的理解. 2.计算机硬件调

MySQL数据库调优经验

?RDS for MySQL 由亚洲唯一WebScaleSQL团队维护内核源码,结合阿里巴巴多年MySQL数据库调优经验,从数据库源码层及数据库参数进行了性能优化,在相近规格配置下,RDS for MySQL性能值能达到自建数据库性能的3倍以上. RDS for MySQL针对通用的场景,在内核做了一系列的优化: 1. 改进了InnoDB redo组提交功能,多线程并发写入的情况下能有10%以上的速度提升. 2. 优化锁,对一些会引起串行化的大锁进行了拆分,能够有效避免长时间的读锁等待,提升数据

mysql数据库调优

最近新到项目上,算是帮忙,遇见性能测试. 测试要求其实不高,现在是单mysql数据库,未分表,四千万数据,四百毫秒,上的压力是一千一百多tps,但是,动态的只占到了百分之二十左右,也就是两百左右的tps吧.服务器还是比较牛逼的,我看到了十几个cpu线程,估计超过一百G内存吧. 大体情况如上. 鄙人之前没优化过mysql,其实,是没调优过sql,只读过部分sql执行的原理,数据库的结构啥的,平常写sql和设计表的时候有些注意,实战调优经验为零,以前就算调了,没测试过,也白搭,这次算是逮到便宜了.

mysql数据库 调优

mysql调优硬件配置网络带宽mysql运行参数慢查询日志网络架构多实例(一台服务器上运行多个数据库服务)分库分表 当一台数据库服务器处理客户端的请求慢时,可能是哪些原因造成? 硬件配置低:(内存 cpu 硬盘i/o ) 查看硬件使用情况 free -m top 网络带宽: 测试带宽(扩展带宽) 提供数据库服务软件的版本太低: vim /etc/my.cnf [mysqld] 选项-值(不选就是默认的) /etc/init.d/mysql restart 数据库服务器处理查询请求的过程:连接池>

Mysql数据库调优和性能优化

1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是mysql数据库的默认设置性能非常的差,仅仅是一个玩具数据库.因此在产品中使用MySQL数据库必须进行必要的优化. 优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化. 2. 数据库设计和查询优化 在MySQL Server性能调优中,首先要考虑的就是Database Schema设计,和