美文网首页
MySQL数据库的优化

MySQL数据库的优化

作者: 你与时光终会散 | 来源:发表于2019-07-08 18:15 被阅读0次

一、数据类型的优化

使用什么样的类型更合适,性能更快

  • tingint(255)、smallint、int、bigint(上千万上亿)考虑空间的问题和范围的问题
  • char、varchar 存储字符串长度是否固定
  • enum 特定、固定的分类可以使用enum存储,效率更快
  • IP地址的存储 ip2long 整型存储

tinyint
从 -2^7 (-128) 到 2^7 - 1 (123) 的整型数据。存储大小为 1个字节。
unsigned 是从 0 到 255 的整型数据。
所以建表的时候 只能是tinyint(3),哪怕你建tinyint(100),他最大还是3位这么多。
smallint
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。
unsigned 是从 0 到 65535 的整型数据。
所以建表的时候 只能是smallint(5),哪怕你建smallint(100),他最大还是5位这么多。
int
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647)的整型数据(所有数字).存储大小为 4 个字节。
unsigned 是从 0 到 4294967296 的整型数据。
所以建表的时候 只能是int(10),哪怕你建int(100),他最大还是10位这么多。
bigint
从 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1(9,223,372,036,854,775,807) 的整型数据(所有数字)。存储大小为 8 个字节。
unsigned 是(自己算吧)
所以建表的时候 只能是bigint(20),哪怕你建bigint(100),他最大还是20位这么多。

二、索引的优化

建立合适的索引

  • 索引不是越多越好,在合适的字段是创建索引
  • 符合索引的前缀原则
  • like查询%问题 %不能在前,可以使用全文索引
  • 全表扫描优化 如果MySQL估计使用索引比全表扫描更慢,会放弃使用索引
  • OR条件使用情况,如果or前的条件中的列有索引,后面的没有,索引都不会被用到
  • 字符串类型索引失效的情况

三、SQL语句的优化

1、优化查询过程中的数据访问
  • 使用limit
  • 返回列不适用
2、优化长难句的查询语句
  • 变复杂为简单
  • 切分查询
  • 分解关联查询
3、优化特定类型的查询语句
  • 优化count()
  • 优化关联查询
  • 优化子查询
  • 优化group by 和distinct
  • 优化limit和union 记录上次查询最大ID

四、存储引擎的优化

尽量使用InnoDB
InnerDB和MyISAM的区别

  • InnerDB支持事务
  • InnerDB支持行锁
  • InnerDB支持外键
  • InnerDB支持崩溃后的安全恢复
  • InnerDB数据存储在共享表空间

五、数据库结构设计的优化

1、分区操作

通过特定的策略对数据表进行物理拆分
对用户透明
Partition by

2、分库分表

水平拆分
垂直拆分

六、数据库服务器架构的优化

  • 主从复制
  • 读写分离
  • 双主热备
  • 负载均衡 lvs的三种基本模式实现负载均衡,mycat数据库中间件实现负载均衡

相关文章

  • MySQL数据库与SQL优化

    一、MySQL数据库 - SQL优化 MySQL DBMS - MySQL Database Management...

  • MySQL-性能优化-优化设计和设计原则

    MySQL-性能优化-优化设计和设计原则 MySQL性能优化目的 如何合理的设计数据库? 什么样的数据库设计才能给...

  • MySQL5:性能优化

    性能优化 优化MySQL数据库是数据库管理员和数据库开发人员的必备技能。MySQL优化,一方面是找出系统的瓶颈,提...

  • 数据库存储原理特性索引优化

    说一下mysql数据库存储的原理? 事务的特性? 数据库索引 数据库怎么优化查询效率? 数据库优化方案 优化索引、...

  • SQL审核优化建议

    SQL审核优化建议 数据库类型 MySQL:RDS MySQL、PolarDB MySQL、MariaDB、Pol...

  • zabbix4.0 之mysql优化(Zabbix分区表)

    zabbix最大的瓶颈不在zabbix服务,而是mysql数据库的压力上,优化mysql其实就是优化zabbix的...

  • MySQL优化

    概述 MySQL优化分为三部分优化: MySQL服务器和配置优化 数据库设计和结构优化 查询优化(重点) MySQ...

  • 数据库设计三范式与反范式

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 第一范式: 1、数据库的所有...

  • mysql性能与优化

    数据库结构优化 数据库结构设计 mysql复制

  • MySQL书目

    MySQL数据库索引设计与优化 MySQL技术内幕 MySQL排错指南 高性能MySQL MySQL DBA修炼之道

网友评论

      本文标题:MySQL数据库的优化

      本文链接:https://www.haomeiwen.com/subject/lubahctx.html