高性能Mysql读书笔记(第一章)

高性能Mysql这本书,在电脑里面下载快半年了,一直没时间看,最终决定在9月份每天花点时间把这本书看完,在这里记录一下书中的一些知识点,便于积累吧。

 

第一章 Mysql架构

 第一章讲的都是基础

 一、Mysql逻辑架构一共有三层。

 

 顶层服务主要处理链接处理、授权、认证等。第二层是关键包括查询解析、分析、优化、缓存和内建函数等,还有各种存储引擎提供功能也集中在这一层,存储过程、触发器、试图等。

 

 二、预写式事务日志、MVCC (可以百度)

===============百度如下

.预写式日志。innodb有自己的内存数据缓存(跟mysql服务器层的查询缓存不是一回事,该缓存最大不会超过数据库的大小,这个我们的应用会比较小应该不会超过5G),写入的时候可以先写入内存。在写入事务日志,这个是顺序IO比修改数据的随机IO要快不少,同时innodb_flush_log_at_trx_commit,该写入动作不跟事务同步,而是每秒执行一次,进一步提高性能。

innodb_flush_log_at_trx_commit  (这个很管用)
抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
===================

 三、存储引擎

 

1、myisam

平台通用,通过简单的拷贝就可以 存储为两个文件数据文件和索引文件

特性:

加锁与并发、自动修复、手工修复、索引特性(blob和text前500个字符创建相关索引,支持全文索引)

延迟更新索引(delay_key_write)、压缩的myisam表

 

百度来的

=====================

插入大数据时,有索引会很慢,可以DISABLE KEYS,或者直接在table中加入DELAY_KEY_WRITE

注:

delay_key_write这个参数只对myisam类型表有效
如果你某个表需要经常update操作,这个参数就很管用!
但等delay_key_write使用时,出现断电或重启时,会导致在cache的索引update没来得及更新,所以必须在启动参数加上 –myisam-recover,或者在conf设置myisam-recover=BACKUP,FORCE。这样在你启动mysql的时候会检查你的 表并同步表和索引.

另外如果修复myisam类表可以在my.cnf中mysqld段设置myisam-recover恢复功能,参数有:default,force,backup,QUICK

http://www.cnblogs.com/zhizhesky/archive/2011/08/22/2149357.html

=======================

 

并发插入 (concurrent_insert)

=============== 百度来的

MyISAM存储引擎有一个系统变量concurrent_insert,专门用以控制其并发插入的行为,其值分别可以为0、1或2。

·当concurrent_insert设置为0时,不允许并发插入。

·当concurrent_insert设置为1时,如果MyISAM表中没有空洞(即表的中间没有被删除的行),MyISAM允许在一个进程读表的同时,另一个进程从表尾插入记录。这也是MySQL的默认设置。

·当concurrent_insert设置为2时,无论MyISAM表中有没有空洞,都允许在表尾并发插入记录。

==============

2、myisam merge

myisam的变种,合并表讲几个相同的myisam表合并为一个虚表,记录日志和数据仓库的时候非常有用。

3、innodb

专为事务处理而设计,特别是短期事务,它将所有的数据共同存储在一个或几个的数据文件中,这种数据文件称之为表空间

使用mvcc机制获得高并发,默认隔离基本为repeatable read,使用间隙所,防止幻读。

基于聚镞索引

4、memory引擎

内存表,比myisam快一个数量级,存在内存当中,表结构在磁盘上,重启后数据都会消失

但是使用表级加锁,只支持较低的写并发,也不支持blob和text字段,只支持定长字段,浪费了一些内存

好处:缓存中间数据、周期性聚合数据,查找和映射表。

5、archive引擎

只支持select和insert查询,不支持索引,缓冲了数据写操作、插入时进行了zlib压缩,使的磁盘io较小比myisam,支持行级加锁和专用缓冲区,可以高并发

适用于数据记录和数据采集

其他如:csv引擎、federated引擎、blackhole引擎、ndb cluster引擎、falcon引擎、solidDB引擎、pbxt引擎、maria引擎(准备替代myisam)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值