`
wx1569484809
  • 浏览: 64115 次
文章分类
社区版块
存档分类
最新评论

《Mysql-概述-架构-性能优化13项》

 
阅读更多

《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-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

    总之,"mysql-5.7.29-linux-glibc2.12-x86_64.tar.zip"是一个专为64位Linux系统设计的MySQL服务器安装包,包含了丰富的功能和性能优化,是企业级应用的理想选择。正确安装和配置后,用户可以充分利用其强大而可靠的...

    mysql for Linux (mysql-standard-4.1.22-pc-linux-gnu-i686.tar.gz )

    一、MySQL概述 MySQL是一个关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,现在由Oracle公司维护。它以SQL(结构化查询语言)为基础,提供高效、可靠的数据存储和处理能力。MySQL以其高性能、高可用性、...

    mysql-8.0.19-el7-x86_64.tar.gz

    - **优化查询性能**:引入了InnoDB存储引擎的多项优化,如更好的行格式,更快的索引插入,以及对查询执行的优化。 - **窗口函数**:SQL标准中的窗口函数使得复杂的分析查询更为简洁,无需通过子查询或自连接实现。 -...

    mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz 百.度.网.盘地址及密码

    ### MySQL 5.7.21 Linux glibc2.12 x86_64 版本概述 MySQL 是一个非常流行的...通过合理的安装配置和性能优化,可以充分发挥其潜力,满足各种业务需求。希望本文提供的信息能够帮助您更好地理解和使用 MySQL 5.7.21。

    MySQL架构演变与性能优化最终版

    ### MySQL架构演变与性能优化知识点解析 #### 一、MySQL架构概述 MySQL作为一个关系型数据库管理系统,其架构设计经历了多次迭代和发展。理解MySQL的基本架构对于深入掌握其工作原理至关重要。 **1.1 MySQL架构图...

    mysql-essential-6.0.11-alpha-win32

    1. **MySQL概述**: - MySQL是一个关系型数据库管理系统(RDBMS),遵循ACID(原子性、一致性、隔离性和持久性)原则,确保数据的可靠性和完整性。 - 它由瑞典的MySQL AB公司开发,后来被Sun Microsystems收购,...

    阿里巴巴Java性能调优实战(2021-2022华山版)+Java架构核心宝典+性能优化手册100技巧.rar

    阿里巴巴Java性能调优华山版是一套系统性能调优教程,!通过这份笔记的学习,你将会有一个系统的调优头脑和策略!...Redis 性能优化的 13 个小技巧 . . . 每篇文章图文并茂,附有源码 + 性能评测结果 + 优化方案。

    Mysql性能优化教程.doc

    ### MySQL性能优化教程知识点概述 #### 一、MySQL执行优化 **1.1 背景及目标** - **背景**: 针对已具备一定MySQL使用经验的工程师,特别是适用于高并发、海量数据处理的互联网环境。 - **目标**: 通过对MySQL性能...

    mysql-overview_rev5.json

    一、MySQL概述 MySQL由瑞典的MySQL AB公司开发,后被Oracle公司收购。它是一个快速、可靠且可扩展的数据库系统,适用于从小型企业到大型企业的各种规模的应用场景。MySQL支持多种操作系统,包括Windows、Linux、Unix...

    MySQL-server-community-5.1.47-1.rhel5.x86_64.rpm

    对于64位操作系统(x86_64架构),MySQL 5.1可以利用更大的内存空间,处理更大的数据集,并提供更好的性能。RHEL5是Red Hat的一个长期支持版本,为MySQL提供了稳定的运行环境。 6. **RPM包安装**: 使用RPM(Red ...

    mysql-ref-5.6-en.pdf

    ### 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-macos-arm64.dmg

    MySQL Workbench Community 8.0.36 for macOS (ARM64) 资源...MySQL Workbench Community 8.0.36 针对macOS的ARM64架构进行了优化,确保在Apple的M1、M2等芯片的Mac上能够流畅运行。此外,该版本还包含了一系列性能改进

    MySQL性能调优与架构设计(完整)

    #### 一、MySQL概述 - **MySQL Server简介** - **定义**: MySQL是由MySQL AB公司(现已被Oracle收购)开发的一款开放源代码的关系型数据库管理系统(RDBMS)。 - **特点**: - 支持多线程和高并发操作。 - 高度...

    mysql数据库性能优化

    ### MySQL数据库性能优化 #### 一、概览 在当今高度依赖互联网技术的世界里,数据库作为数据存储的核心组件,其性能直接影响着应用系统的响应速度和用户体验。MySQL作为一款广泛使用的开源关系型数据库管理系统,...

    mysql-gui-tools-5.0-r12-win32.rar(mysql数据库管理软件)

    - **性能**:通过优化配置可以达到较高的并发处理能力。 ### 5. Zend Framework #### 5.1 框架介绍 Zend Framework(现称为 Laminas Project)是一个基于 PHP 的开源应用程序框架,旨在为 Web 开发者提供一个灵活...

    MySQL性能调优与架构设计(中文版)

     第9章 MySQL数据库Schema设计的性能优化  第10章 MySQL Server性能优化  第11章 常用存储引擎优化 第3篇 架构设计篇  第12章 MySQL可扩展设计的基本原则  第13章 可扩展性设计之MySQL Replication  第...

    MySQL性能调优与架构设计.pdf -文字版

    ### MySQL性能调优与架构设计知识点概述 #### 一、MySQL基本介绍 ##### 1.1 MySQL Server简介 - **1.1.1 什么是MySQL** - MySQL是一款由MySQL AB公司开发的开源数据库管理系统,后来被Sun Microsystems收购。它是...

Global site tag (gtag.js) - Google Analytics