mysql优化策略

mysql优化的几个方面

  • 硬件 主要有 cpu、内存、磁盘io、网络
  • 系统配置 操作系统的不同、版本、以及操作系统的配置
  • 数据库 存储引擎的选择、数据库服务器配置参数、
  • 表结构设计及sql语句 sql语句优化、编写、表结构的设计

硬件

cpu选择

应用为计算密集型,应该使用更高的频率
应用的并发量高,则需要更多的核数

内存

  • 一般来说通过增加内存,将数据缓存到内存中,从而提高数据吞吐性能
    瓶颈,如所有的数据都缓存到内存中了,在增加内存不会有性能的提升
    myisam 会将索引缓存到内存中
    数据通过操作系统缓存
    innodb 会同时在内存中缓存数据和索引

  • 内存的提升对于写会有提升,可以将多次写入改为一次写入

  • 内存的频率越高,速度越快

磁盘的配置和选择

  • 传统机械磁盘

读取过程:1)移动磁头到磁盘表面正确的位置上,2)等待磁盘旋转,使所需的数据在磁头之下,3)等待磁盘旋转过去,所有所需的数据被磁头读出
12称为访问时间,3传输速度

选择因素:磁盘容量,传输速度,访问时间,主轴转速,物理尺寸

  • raid机械磁盘 磁盘冗余队列的简称

  • ssd
    相比机械磁盘,可以加强随机读写性能,随机读的性能提升明显
    支持的更好的并发
    长时间密集写操作容易损坏ssd

  • 网络存储
    外部文件存储设备加载到服务器上的方法
    最适合用于数据库备份

系统

mysql适合的操作系统
windows、FreeBSD、Solaris、linux

  • centos优化
    linux优化
  • 插件式存储引擎 存储引擎针对于表,而不是针对于库的


存储引擎

myisam

myisam存储引擎由MYD和MYI组成

特性

  • 并发性和锁级别 使用的是表级锁,读写混合操作并发差,
  • 表损坏修复 check table tablename 进行检查, repair table tablename 进行修复
  • 支持的索引类型 全文索引,
  • 支持数据压缩 myisampack命令压缩 已压缩的表只能进行读操作

限制

  • mysql5.0之前默认表大小为4g,5.0之后支持256tb

适用场景

  • 非事务应用
  • 只读类应用
  • 空间类应用

innodb

mysql5.5版本之后称为默认存储引擎
适合处理大量小事务
innodb使用表空间进行数据存储
innodb_file_per_tabl
on 独立表空间:tablename.ibd; 通过optimize table命令收缩系统文件,可以同时向多个文件刷新数据
off 系统表空间 ibdatax 无法简单收缩文件大小,会产生io瓶颈
将系统表空间转到独立表空间,1mysqldump导出,2停止mysql服务,修改参数,3重启mysql,重建innodb表空间,4重新导入

特性

  • innodb 是一种事务型存储引擎
  • 完全支持事务的acid特性
  • redo log 和 undo log redo log 实现事务持久性,undo log 未提交事务
  • innodb 支持行级锁,行级锁可以最大程度支持并发,行级锁是由存储引擎实现的

性能监控命令

show engine innodb status

锁的概念

锁的主要作用是管理共享资源的并发访问
锁用于实现事务的隔离性
锁的类型:读锁(共享的,不相互干扰),写锁(排他的,堵塞其他读锁和写锁)
锁的粒度:被加锁资源的最小单位,行级锁,表级锁,锁定的数据越少,并发越高
阻塞:不同锁之间的兼容,一个锁需要等待另一个锁的释放,因而产生了阻塞,阻塞是为了确保事务的可以并发。大量慢查询或者是alter table
死锁:两个或者两个以上事务,相互占用对方等待的资源。系统会自动处理。少量死锁不会对系统发生影响。

CSV

文件系统存储特点:

  • 以文件方式存储
  • 所有的列 都是非空的
  • 不支持索引
  • 不适合大表 不适合在线处理
  • 可以直接对文件进行编辑

适用场景,作为数据交换的中间表使用

  • .csv 文件存储表内容
  • .csm 文件存储表的元数据和数量数
  • .frm 文件存储表结构信息

archive

文件系统存储特点

  • 以zlib对表数据进行压缩,磁盘io更少
  • 数据存储在ARZ为后缀的文件中
  • frm 存储表结构

存储特点

  • 只支持insert 和 select
  • 支持在自增id 上建立索引
  • 记录日志和数据采集类应用

memory

文件系统存储特点

  • 也称为heap存储引擎,所以所有数据存储在内存中
  • 重启数据消失 需要数据是可再生的
  • 表结构 存储在ifm

功能特点

  • 支持hash 等值查找
  • btree索引 范围查找
  • 所有字段的长度都是定长的,varchar(10). => char(10)
  • 不支持 text blog 大字段类型
  • 使用的是表级锁
  • 最大大小由 max_heap_table_size. 默认16mb 修改之后需要重建已存在的表

临时表

  • 系统使用的(未超过限制使用momery临时表, 超过限制 使用myisam 临时表)
  • create temporary table 建立的临时表
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容