《Mysql-概述-架构-性能优化13项》
一、概述
MySQL是一个开放源代码的关系数据库管理系统,Web应用最多的数据库。
二、架构
Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的。
三、性能优化13项
1. 使用EXPLAIN分析sql语句
使用EXPLAIN关键字可以知道MySQL是如何处理SQL语句的。
2. 当只要一行数据时使用LIMIT 1
已知道结果只有一条,加上LIMIT 1可以增加性能。MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。
3. 为常用搜索字段建索引
索引并不一定仅给主键或是唯一的字段。若有某个字段总会经常用来做搜索,则可为其建立索引。
4. 在Join表的时候使用相当类型的例,并将其索引
用来Join的字段,应该是相同的类型的。DECIMAL字段和一个INT字段Join在一起,MySQL就无法使用它们的索引。
5. 避免SELECT * from table
从数据库里读出越多的数据,那么查询就会变得越慢。在分层的多台服务器会增加网络传输的负载。
6. 为每张表设置一个ID
应该为数据库里的每张表都设置一个ID做为其主键
7. 固定长度的表会更快
固定长度的表会提高性能,因为MySQL搜寻得会更快一些,因为这些固定的长度是很容易计算下一个数据的偏移量的。
8. 垂直分表(行相等)
垂直分表是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数目,从而达到优化的目的。
比如人的基本信息(姓名、性别、年龄、手机号等)为一张表,人的详细信息(家族地址、工作地址、邮编等)为另一张表
9. 水平分表(列相等)
单表行数超过800万行或者单表容量超过3GB,可进行分库分表。
10. 选择正确的存储引擎
MySQL中的存储引擎MyISAM和InnoDB,每个引擎都有利有弊。
MyISAM适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。
MyISAM不支持行锁、事务、外键。
InnoDB支持行锁、事务、外键。
11. 使用PreparedStatement,
用PreparedStatement一般来说比Statement性能高:一个sql发给服务器去执行,涉及步骤:语法检查、语义分析、编译、缓存。
PreparedStatements可以检查一些你绑定好的变量,这样可以保护你的程序不会受到“SQL注入式”攻击。
12. UNION ALL要比UNION快很多
1) 对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复记录。
2) 对排序的处理:Union将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。
13. 尽早返回
在代码中写分页查询逻辑时,若count为0应直接返回,避免执行后面的分页语句。
转载于:https://my.oschina.net/devpmp/blog/3079896
分享到:
相关推荐
本文将详细讨论“mysql-essential-5.0.45”这个版本,它包含了MySQL服务器、客户端工具以及一些必要的库文件,适用于x86和x64架构。 **MySQL 5.0.45概述** MySQL 5.0.45是MySQL的一个重要版本,发布于2007年。此...
总之,"mysql-5.7.29-linux-glibc2.12-x86_64.tar.zip"是一个专为64位Linux系统设计的MySQL服务器安装包,包含了丰富的功能和性能优化,是企业级应用的理想选择。正确安装和配置后,用户可以充分利用其强大而可靠的...
一、MySQL概述 MySQL是一个关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,现在由Oracle公司维护。它以SQL(结构化查询语言)为基础,提供高效、可靠的数据存储和处理能力。MySQL以其高性能、高可用性、...
- **优化查询性能**:引入了InnoDB存储引擎的多项优化,如更好的行格式,更快的索引插入,以及对查询执行的优化。 - **窗口函数**:SQL标准中的窗口函数使得复杂的分析查询更为简洁,无需通过子查询或自连接实现。 -...
### MySQL 5.7.21 Linux glibc2.12 x86_64 版本概述 MySQL 是一个非常流行的...通过合理的安装配置和性能优化,可以充分发挥其潜力,满足各种业务需求。希望本文提供的信息能够帮助您更好地理解和使用 MySQL 5.7.21。
### MySQL架构演变与性能优化知识点解析 #### 一、MySQL架构概述 MySQL作为一个关系型数据库管理系统,其架构设计经历了多次迭代和发展。理解MySQL的基本架构对于深入掌握其工作原理至关重要。 **1.1 MySQL架构图...
1. **MySQL概述**: - MySQL是一个关系型数据库管理系统(RDBMS),遵循ACID(原子性、一致性、隔离性和持久性)原则,确保数据的可靠性和完整性。 - 它由瑞典的MySQL AB公司开发,后来被Sun Microsystems收购,...
阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!...Redis 性能优化的 13 个小技巧 . . . 每篇文章图文并茂,附有源码 + 性能评测结果 + 优化方案。
### MySQL性能优化教程知识点概述 #### 一、MySQL执行优化 **1.1 背景及目标** - **背景**: 针对已具备一定MySQL使用经验的工程师,特别是适用于高并发、海量数据处理的互联网环境。 - **目标**: 通过对MySQL性能...
一、MySQL概述 MySQL由瑞典的MySQL AB公司开发,后被Oracle公司收购。它是一个快速、可靠且可扩展的数据库系统,适用于从小型企业到大型企业的各种规模的应用场景。MySQL支持多种操作系统,包括Windows、Linux、Unix...
对于64位操作系统(x86_64架构),MySQL 5.1可以利用更大的内存空间,处理更大的数据集,并提供更好的性能。RHEL5是Red Hat的一个长期支持版本,为MySQL提供了稳定的运行环境。 6. **RPM包安装**: 使用RPM(Red ...
### MySQL 5.6 版本概述 - **版本支持**:该参考手册涵盖了MySQL 5.6系列的所有版本直至5.6.1。 - **不支持的特性**:MySQL Cluster在MySQL 5.6中暂不支持,有关MySQL Cluster的信息可以在MySQL Cluster NDB 6.X/7....
MySQL Workbench Community 8.0.36 for macOS (ARM64) 资源...MySQL Workbench Community 8.0.36 针对macOS的ARM64架构进行了优化,确保在Apple的M1、M2等芯片的Mac上能够流畅运行。此外,该版本还包含了一系列性能改进
#### 一、MySQL概述 - **MySQL Server简介** - **定义**: MySQL是由MySQL AB公司(现已被Oracle收购)开发的一款开放源代码的关系型数据库管理系统(RDBMS)。 - **特点**: - 支持多线程和高并发操作。 - 高度...
### MySQL数据库性能优化 #### 一、概览 在当今高度依赖互联网技术的世界里,数据库作为数据存储的核心组件,其性能直接影响着应用系统的响应速度和用户体验。MySQL作为一款广泛使用的开源关系型数据库管理系统,...
- **性能**:通过优化配置可以达到较高的并发处理能力。 ### 5. Zend Framework #### 5.1 框架介绍 Zend Framework(现称为 Laminas Project)是一个基于 PHP 的开源应用程序框架,旨在为 Web 开发者提供一个灵活...
第9章 MySQL数据库Schema设计的性能优化 第10章 MySQL Server性能优化 第11章 常用存储引擎优化 第3篇 架构设计篇 第12章 MySQL可扩展设计的基本原则 第13章 可扩展性设计之MySQL Replication 第...
### MySQL性能调优与架构设计知识点概述 #### 一、MySQL基本介绍 ##### 1.1 MySQL Server简介 - **1.1.1 什么是MySQL** - MySQL是一款由MySQL AB公司开发的开源数据库管理系统,后来被Sun Microsystems收购。它是...