打造扛得住的数据库架构读书笔记(三)

Archive存储引擎
以zlib对表数据进行压缩,磁盘I/O更少。数据存储在ARZ为后缀的文件中。

特点:只支持insert和select操作,支持行级锁。不是事务型存储引擎。
只允许在自增ID上加索引。

使用场景:日志和数据采集类应用(只能插入和查询的场景)。

Memeory存储引擎
数据是保存在内存中,一旦MySql重启后,数据会丢失,但是表结构不会丢失。
支持Hash索引(等值查找)和BTree索引(范围查找)。
所有字段都为固定长度, varchar 和char等价。
不支持BLOG和TEXT等大字段。
使用表级别锁。

Memory 存储引擎表和临时表(系统使用临时表或者create temporary table建立的临时表)

使用场景:
用于查找或者是映射表,例如邮编和地区的对应表。
用于保存数据分析中产生的中间表。
用于缓存周期性聚合数据的结果表。

Federated存储引擎
提供了访问远程MySQL服务器上表的方法。每次查询Federated表上的数据时,都会发送命令到远程服务器去查询。
本地不存储数据,数据全都在远程服务器上。
本地保存表结构和远程服务器的连接信息。

如何正确的存储引擎
大部分时候选择InnoDB是没有错的。InnoDB是提供免费的热备方案的。
不建议混合使用存储引擎。

MySQL服务器参数配置
全局参数
set global.参数名 = 参数值
set @@global.参数名: = 参数值
会话参数
set [session].参数名 = 参数值
set @@session:= 参数值

内存参数:
1)确定可以使用的内存的上限。(32为可能只能使用3G以内的内存),确定要为操作系统保留内存。
2)确定每个连接使用的内存。
sort_buffer_size, 每个线程的排序缓冲区大小,一但需要排序就会分配这个内存。
join_buffer_size, 连接缓冲区,每个查询的表会分配一个连接缓冲区。
read_buffer_size, 查询操作分配内存。
read_md_buffer_size, 索引缓冲区大小。
3)缓存次分配内存
Innodb_buffer_pool_size,影响性能,索引和数据,锁等都会在这里缓存,要保证足够的大小。
key_buffer_size,MyIsam,这个引擎只会缓存索引。MySql的系统表还在使用MyISam,所以这个还是需要分配一些的。

IO相关参数配置
InnoDb相关I/O配置
Innodb_log_file_size 单个事务日志的大小(undo)
Innodb_log_files_in_group 日志文件的个数(undo)
Innodb_log_buffer_size 事务日志缓冲区,不用太大。
Innodb_flush_log_at_trx_commit, 1最安全,不会丢失任何事务。建议为2。
Innodb_file_per_table innodb如何使用表空间,建议每个表单独使用一个文件。
Innodb_doublewrite = 1, 双写缓存,保证数据安全性。

MyISAM I/O
delay_key_write OFF,每次写都刷新到磁盘,ON:只对指定的表使用延迟写入,ALL:所有MyISAM表都是用延迟写入。

安全相关配置参数
expire_logs_days 指定自动清理binlog的天数,至少复制两天全备的参数。
max_allowed_packet 可以接受的最大的包的大小(主从复制两边最好一致)。
skip_name_resolve 禁用DNS查找。
sysdate_in_now 确保sysdate()返回确定性的日期
read_only 禁止非super权限用户写。(主从复制,从用户使用)。
skip_slave_start 禁止Slave自动复制。
sql_mode 设置MySQL所使用的SQL模式(纠正语法)。

其他
sync_binlog 控制MySQL如何向磁盘刷新binlog,cache到磁盘。0表示由操作系统决定。1表示没提交一次就写一次。主从复制的主建议设置为1。
max_connections 控制允许的最大连接数。

数据库设计对性能的影响
1.过分的反范式化为表建立太多的列。
2.过分的范式化造成太多的表关联(关联表在10个以内)。
3.在OLTP环境中使用不恰当的分区表(同一个数据库实例下进行,只是物理文件不同)。
4.使用外键保证数据的完整性(效率非常低,额外的锁开销)。

MySql系统性能测试
进行基准测试,目标建立MySQL服务器的性能基准线。
常用指标:
单位时间内所处理的事务数(TPS)。
单位时间内所处理的查询数(QPS)。
响应时间(平均,最小,最大)。
并发量:同时处理查询请求的数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值