第2章 什么影响了MySQL性能

2018-08-30  本文已影响0人  马_黎

什么影响了mysql的性能

一般来说数据的参数的配置是非常重要的

20180827224542.png

如何选择CPU

CPU密集型,选择更好的数据库而不是更多的CPU

并发量多的,cpu的数量越多越好

在web中,cpu的数量比性能重要

内存

如果内存的数量大于缓存的话,利用率就不是太高了。

买内存的时候,内存最大的,买相同的内存。

磁盘的配置和选择

机械硬盘

如何选择

RAID

什么是RAID?

将多个小的磁盘,组合成一个大的磁盘!并提供数冗余来保证数据的完整性。

RAID 0

什么是 RAID 0什么是 RAID 0 RAID 0的实现方式RAID 0的实现方式

磁盘一旦损坏,数据就找不到了。
读比 RAID 1 快

RAID 1

RAID 1RAID 1 RAID 1 示例图RAID 1 示例图

注意,磁盘坏了,立马更换。

RAID 5

什么是RAID 5什么是RAID 5 示例图示例图

随机写慢,但是读快。适合方从数据库

RAID 10

数据库的最好选择,成本比较高

介绍介绍 示例图示例图

总结

enter description hereenter description here

固态硬盘

优缺点

特点

固态硬盘的特点固态硬盘的特点

网络存储的使用场景

适合做数据库备份。

SNA和NASSNA和NAS NASNAS

网络对性能的影响

建议建议

Centos 参数优化

enter description hereenter description here 决定每个端口最大的监听长度,默认很小,对负载很大的数据是不行的决定每个端口最大的监听长度,默认很小,对负载很大的数据是不行的 接受包的速率比内核处理快的时候,准许往队列中发送包的最大的数据木接受包的速率比内核处理快的时候,准许往队列中发送包的最大的数据木 enter description hereenter description here

MySQL

mysql引起的介绍

MYISAM

特性1:

并发性与锁级别

MYISAM 使用的是表级锁,而不是行级锁!这就导致读取和写入是相斥的,对续写能敌的处理不是很好,并发性不好,但是对于只读的话,还是不错的。

特性2:

表损坏(意外关闭造成的损坏)和修复

check table  检查
repair table 修复

特性3

限制:

实用场景:

INNODB

5.5版本之后默认成Innodb数据库引擎
有自己的表空间,使用表空间进行存储
为每一个表建立独立的表空间

系统表空间和独立表空间如何选择

系统表空间容易造成空间浪费,会有I/O瓶颈

独立表空间,可以向多个文件删除。

建议: 使用独立表空间

数据库5.6版本默认的是独立表空间

系统空间变成独立表空间的办法

特性 1:

什么是锁?

锁类型?

共享锁(读锁)
独占锁(写锁)

锁的粒度

锁的最小单位,如行级锁,表级锁

阻塞和死锁?

特性3 :

状态检查

show engine innodb status

注意要隔离30s,

可以检查缓存、读写、循环次数、log信息、缓存池、内存信息等。

适用场景:

使用大多数的OLTP应用
5.6支持了全文索引和空间函数

CVS引擎

特点:
以文件形式存储的

特点:

1.以csv格式进行存储
2.不能出现null的列
3.不支持索引
4.可以对文件直接编辑

适用场景
数据中间交换表,如电子表格等

Archive引擎

特点:
1.缓存所有的写,并对缓存进行压缩。更加节约磁盘I/O和内存
2.数据已ARZ后缀访问文件

特点2:

1.只支持insert和select操作
2.支持行级锁
3.只允许在自增id上建立索引

适用场景:
日志和数据采集

memory数据库引擎

特点:
1.数据保存在内存中
2.支持HASH(等值查找)和BTress(范围查找)索引
3.所有字段都是定长
4.不支持大字段
5.是一个表级锁,并发不好!

适用场景
1.映射表,如邮编和地区
2.保存数据分析产生的中间表
3.用于缓存周期性聚合数据表

不能用于主从复制,因为每次主服务器上都会从新生成!副从服务器上的就不能用了。

federated

特点:

  1. 提供了mysql服务器访问远程服务器的方法
  2. 本地不存放数据,数据都在远程数据库里存放着
  3. 本地保存表结构和远程的服务器信息
  4. 当前的数据库默认是禁止的

适用场景
偶尔的统计拆分可以使用。

如何选择数据库引擎

一般选择Innodb就可以了。

参考条件 :事物、备份、特性、崩溃恢复
建议:不同的数据库引擎,尽量不要混合使用

MySql服务器配置

内存配置的相关参数

要注意确认为操作系统留多少内存。

如何分配缓存池内存

Innodb_buffer_prol_size 定义Innodb使用缓存池的大小

算法:
池的大小 --> 总内存-(线程内存*连接数)-系统内存。

key_buffer_size :MYSIM缓存池的大小,注意存放索引

enter description hereenter description here enter description hereenter description here mysql 安全参数的配置mysql 安全参数的配置 MYSQL安全参数2MYSQL安全参数2 Mysql安全参数3Mysql安全参数3 enter description hereenter description here 其他参数的配置其他参数的配置 其他参数的配置2其他参数的配置2

数据库设计对性能的影

性能优化的顺序

上一篇 下一篇

猜你喜欢

热点阅读