历时七天,史上最强MySQL优化总结,从此优化So Easy!

本文详细介绍了MySQL的优化方法,包括字段设计、存储引擎选择、索引管理、查询缓存、分区策略、集群配置、SQL优化等关键环节,旨在提升数据库性能和应用吞吐量。此外,还探讨了读写分离、负载均衡和高可用性等实践方案。
摘要由CSDN通过智能技术生成

本文转载自:历时七天,史上最强MySQL优化总结,从此优化So Easy!


一、概述

1. 为什么要优化

  • 一个应用吞吐量瓶颈往往出现在数据库的处理速度上
  • 随着应用程序的使用,数据库数据逐渐增多,数据库处理压力逐渐增大
  • 关系型数据库的数据是存放在磁盘上的,读写速度较慢(与内存中的数据相比)

2. 如何优化

  • 表、字段的设计阶段,考量更优的存储和计算
  • 数据库自身提供的优化功能,如索引
  • 横向扩展,主从复制、读写分离、负载均衡和高可用
  • 典型SQL语句优化(收效甚微)

二、字段设计

1. 典型方案

①. 对精度有要求

  • decimal
  • 小数转整数

②. 尽量使用整数表示字符串(IP)

  • inet_ aton("ip' )
  • inet_ ntoa(num)

③. 尽可能使用not null

  • nuI数值的计算逻辑比较复杂

④. 定长和非定长的选择

  • 较长的数字数据可以使用decimal
  • char为定长(超过长度的内容将被截掉), varchar为非定长,text对内容 长度的保存额外保存而varchar对长度的保存占用数据空间

⑤. 字段数不要过多字段注释是必要的、字段命名见名思意、可以预留字段以备扩展

2. 范式

①. 第一范式:段原子性(关系型数据库有列的念,默认就符合了)

②. 第二范式:消除对主键的部分依赖(因为主键可能不止一个);使用一 个与业务无关的字段作为主键

③. 第三范式:消除对主键的传递依赖;高内聚, 如商品表可分为商品简略信息表和商品详情表两张表

三、存储引擎的选择(MyISAM和Innodb)

1. 功能差异

Innodb支持事务、 行级锁定、外健

2. 存储差异

①. 存储方式:MyISAM的数据和索弓 |是分开存储的(.MYI.MYD) , 而Innodb是存在一起的(.frm)

②. 表可移动性:可以通过移动表对应的MYI和MYD能够实现表的移动,而Innodb还有 额外的关联文件

③. 碎片空间:MyISAM删除数据时会产生碎片空间(占用表文件空间),需要定期通过optimizetable table-name手动优化。而Innodb不会。

④. 有序存储:Innodb插入数据时按照主键有序来插入。因此表中数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值