我的MySQL优化学习笔记

我的MySQL优化学习笔记

这是我自己的学习记录笔记,方便自己后续翻看,(如需要)也可共享出来供大家参考。

一、优化概述

1. 优化的目的是什么?

  • 通过配置使现有的软件和硬件获得最佳性能【典型】
  • 寻求机会该进MySQL软件本身
  • 开发自己的存储引擎和硬件设备来扩展MySQL生态系统

2. 从哪里着手优化?

  • 从数据库软件层面进行优化
  • 从硬件层面进行优化
  • 平衡便携性和性能

二、数据库软件层面的优化

1. 良好的基本设计

影响数据库性能的因素很多,但最重要的是“基本设计”。我们首先要确保我们的数据库基本设计良好。

a) 正确设计表结构

  • 列的数据类型要正确
  • 当表数据被经常修改时,表中列数尽可能少(即程序写入多,读取少)
  • 当要分析大量的数据时,表中列数应该尽可能多(即程序读取多,写入少)

b) 查询时使用正确的索引

c) 使用正确的存储引擎以利用每个存储引擎的优势和特性

  • InnoDB(事务存储引擎):新表的默认存储引擎,通常比设计简单的MyISAM好,特别是对于繁忙的数据库
  • MyISAM(非事务存储引擎):设计简单

每个表是否使用适当的行格式?此选择还取决于表所使用的存储引擎。特别是,压缩表使用更少的磁盘空间,因此需要更少的磁盘 I/O 来读取和写入数据。压缩适用于所有类型的 InnoDB表工作负载以及只读 MyISAM表。

用于缓存的所有内存区域的大小是否正确?也就是说,足够大以容纳频繁访问的数据,但又不能大到物理内存过载并导致分页。要配置的足够内存区域和InnoDB缓冲池的MyISAM密钥缓存。

posted @ 2023-12-30 11:58  Only_Aptx-4869  阅读(34)  评论(0)    收藏  举报