【MySQL性能优化】概述与优化方面(一)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【MySQL性能优化】概述与优化方面(一)

【MySQL性能优化】概述与优化方面(一)【MySQL性能优化】概述与优化方面(一)


像sql语句如何进行调优,基本上在中高级程序员面试中都有可能会被问到。


所以说,了解,或者学习一下如何进行sql调优是必要的。


我会关于该sql调优文章出一个系列的博客。与大家一起学下去


首先不具体进行介绍,先大体的概括一下,因为答案基本是死的,但是处理方式是活的


MySQL性能优化/概述


1.数据库的设计

目前只要知道三范式就可以了


2.数据库的分表分库

分库分为两种,水平分割和垂直分割

分表是在同一个数据库当中,减少一个表的查询压力


3.怎么定位慢查询

如果需要知道定位在哪里进行sql调优,那么我们就需要慢查询了


4.数据库索引的优化、索引原理


5.sql的调优


6.数据库的读写分离

可以使用mycat中间件来做读写分离


7.存储过程、触发器、函数

存储过程你可以看成一块sql语句,一个整体,也就是执行很多条sql语句。

好处是安全性高,你看不到sql语句,你只需要传参就行了。其实一般也就银行项目用到。

弊端就是,sql语句都是写死的,不好灵活改变。


MySQL如何实现优化


1.数据库设计合理

首先第一点,数据库设计要合理,一般都要遵循三范式。

数据库设计基本上考察的是工作经验,如果你经验不足,可能数据库设计的不合理,导致开发困难。


2.添加索引

其次就是添加索引,如果不加索引,基本上查找都叫全表扫描

当你使用了索引时,索引底层使用的BTree,和折半查找算法差不多,可以减少全表扫描的时间

索引分为:普通索引,主键索引,唯一索引和全文索引


3.分表分库技术

还有就是分表分库技术,主要是为了减少单张的查询量。

在外面的核心是通过哈希移植性,也就是取模分表,还有水平分割,垂直分割


4.读写分离

还有就是读写分离

也就是读一个写一个,减少io量,提高io性能


5.存储过程

另外就是使用存储过程,比直接执行sql语句,使用jdbc连接效率高

这点基本


6.配置mysql最大连接数

其实就是并发的时候,提高了并发性能

一般在my.ini中配置


7.mysql服务器升级

也就是把服务器弄好一点


8.随时清理碎片化


9.sql语句的调优


其实也就是上面这九点。但是实际上需要我们调优的核心只有:

sql语句调优,添加索引,分表分库,读写分离,还有数据库设计

其他的都是小细节上面的


怎么实现优化,在后面的文章,我会一一道来


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
988
分享
相关文章
MySQL底层概述—9.ACID与事务
本文介绍了数据库事务的ACID特性(原子性、一致性、隔离性、持久性),以及事务控制的演进过程,包括排队、排它锁、读写锁和MVCC(多版本并发控制)。文章详细解释了每个特性的含义及其在MySQL中的实现方式,并探讨了事务隔离级别的类型及其实现机制。重点内容包括:ACID特性(原子性、持久性、隔离性和一致性的定义及其实现方式)、事务控制演进(从简单的全局排队到复杂的MVCC,逐步提升并发性能)、MVCC机制(通过undo log多版本链和Read View实现高效并发控制)、事务隔离级别(析了四种隔离级别(读未提交、读已提交、可重复读、可串行化)的特点及适用场景)、隔离级别与锁的关系。
MySQL底层概述—10.InnoDB锁机制
本文介绍了:锁概述、锁分类、全局锁实战、表级锁(偏读)实战、行级锁升级表级锁实战、间隙锁实战、临键锁实战、幻读演示和解决、行级锁(偏写)优化建议、乐观锁实战、行锁原理分析、死锁与解决方案
MySQL底层概述—10.InnoDB锁机制
MySQL底层概述—8.JOIN排序索引优化
本文主要介绍了MySQL中几种关键的优化技术和概念,包括Join算法原理、IN和EXISTS函数的使用场景、索引排序与额外排序(Using filesort)的区别及优化方法、以及单表和多表查询的索引优化策略。
MySQL底层概述—8.JOIN排序索引优化
MySQL底层概述—7.优化原则及慢查询
本文主要介绍了:Explain概述、Explain详解、索引优化数据准备、索引优化原则详解、慢查询设置与测试、慢查询SQL优化思路
MySQL底层概述—7.优化原则及慢查询
MySQL底层概述—6.索引原理
本文详细回顾了:索引原理、二叉查找树、平衡二叉树(AVL树)、红黑树、B-Tree、B+Tree、Hash索引、聚簇索引与非聚簇索引。
MySQL底层概述—6.索引原理
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
MySQL底层概述—5.InnoDB参数优化
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
MySQL底层概述—3.InnoDB线程模型
InnoDB存储引擎采用多线程模型,包含多个后台线程以处理不同任务。主要线程包括:IO Thread负责读写数据页和日志;Purge Thread回收已提交事务的undo日志;Page Cleaner Thread刷新脏页并清理redo日志;Master Thread调度其他线程,定时刷新脏页、回收undo日志、写入redo日志和合并写缓冲。各线程协同工作,确保数据一致性和高效性能。
MySQL底层概述—3.InnoDB线程模型
MySQL和SQLSugar百万条数据查询分页优化
在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。掌握这些技巧后,您可以在处理海量数据时更加游刃有余。
24 9
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等