细看Innodb落盘过程 zhua1.概述前面很多大侠都分享过MySQL的InnoDB存储引擎将数据刷新的各种情况。我们这篇文章从InnoDB往下,看看数据从InnoDB的内存到真正写到存储设备的介质上到底有哪些缓冲在起作用。我们通过下图看一下相关的缓冲:从上图中,我们可以看到,数据InnoDB到磁盘需要经过1.InnoDB buffer pool,Redo log buffer。这个是In
4k对齐 4K对齐什么是4K 对齐?首先先来了解一下什么是叫做“4K 对齐”。其实“4K对齐”相关联的是一个叫做“高级格式化”的分区技术。“高级格式化”是国际硬盘设备与材料协会为新型数据结构格式所采用的名称。这是主要鉴于随着时代发展,硬盘容量不断扩展,使得之前定义的每个扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096 字节,也就是现在常说的“4K扇区”。NTF
SCSI协议和总线 I/O 技术实现在计算机和存储设备之间的数据交换。实现从CPU 到存储系统的I/O通路的一个中间就是SCSI(Small Computer System Interface). 一. I/O 通路 在计算机中,一个或多个CPU 处理在CPU缓存或主存储器(RAM:Random Access Memory)中的数据。 CPU缓存或主存储器是非常快的器件,但是断电就不能保
HandlerSocket的优势和缺陷阐述 From:http://www.mysqlops.com/2011/10/20/handlersocket-adv.htmlHandlerSocket的优势和特点:1) 支持多种查询模式HandlerSocket目前支持索引查询(主键索引和非主键的普通索引均可),索引范围扫描,LIMIT子句,也即支持增加、删除、修改、查询完整功能,但还不支持无法使用任何索引
HandlerSocket的性能测试 From:http://www.mysqlops.com/2011/10/20/handlersocket-perf.htmlHandlerSocket Oprofile测试报告(MySQL通过SQL执行K/V查询的Oprofile信息)MySQL执行SQL语句,首先要经过SQL解析阶段,调用MYSQLparse() 和MYSQLlex() 进行语法和词法解析;然后进入查询
HandlerSocket的原理 From:http://www.mysqlops.com/2011/10/19/handlersocket-principle.htmlHandlerSocket的原理十月 19, 2011 by Eugene · 8 Comments HandlerSocket的应用场景:MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一
mysql union all的一种优化方法 业务中遇到一个语句:类似:(SELECT * FROM xtable WHERE xx=100500137 ORDER BY xid asc limit 10)union all (SELECT * FROM xtable WHERE xx=104546692 ORDER BY xid asc imit 10)union all (SELECT * FROM xtabl
PHP长连接导致mysql连接数打满 首先说一下问题:PHP使用mysql_pconnect连接到中间代理层,代理层再连接mysql,连接过程中出现代理层到mysql之间的连接持续增长;原因:当PHP发起一个连接到WebServer的时候,PHP的mysql模块会把当前的连接以key=》values的形式保存起来(进程号的MD5),当下次连接的时候就会比较当前进程的IDMD5值和连接池中的valuse对比,一旦匹配上那么就
一个sql引起的丢表问题 背景:一个已经运行了一段时间的老系统线上存在这种业务逻辑:start transactiondrop tables if.... a_backup;drop tables if.... a_tmp;create table a_tmp ...like a;load .....into a_tmp;rename table a ..a_backup;rename
一个奇葩的sql导致拒绝更新 背景一个业务对外开放接口,开发人员可以调用入口掺入一些值给服务端;问题如题,系统中遇到一个sql UPDATE xxa SET column1='1' WHEREcolumn2='1'/**/or/**/sleep(10)/**/and/**/'1'='1';xxa中的表结构为自增主键ID,column 2上有唯一索引;这个语句的执行结果是什么呢?xxa表的记录
mongdb shard搭建遇到的问题总结 搭建的集群为两个replset 分片,3个configsrv,3个mongos:搭建set和configsrv都没遇到什么问题,在搭建mongos时就遇到一个问题,在网上找了很多资料都没有详细说明;具体错误如下:Mon Jul 8 22:14:35 ERROR: config servers xxx1:8100 and xxx2:8100 differconfig servers x
mysql binlog奇异现象binlog truncated in the middle of event 现象说明:mysql5.1.45在做数据时,我重新将从库挂到主从中同步一段时间后出现如下现象 Connect_Retry: 60 Master_Log_File: mysql-bin.006727 Read_Master_Log_Pos: 1046964355 Relay_Lo
mongodb 源码解析内存管理 MongoDB源码概述——内存管理和存储引擎数据存储: 之前在介绍Journal的时候有说到为什么MongoDB会先把数据放入内存,而不是直接持久化到数据库存储文件,这与MongoDB对数据库记录文件的存储管理操作有关。MongoDB采用操作系统底层提供的内存文件映射(MMap)的方式来实现对数据库记录文件的访问,MMAP可以把磁盘文件的全部内容直接映射到进程的内存空间,这样文件中的
磁盘IO调度策略 简介IO调度是决定读或写请求执行的内核部分。 Linux内核有四个选择[noop] anticipatory deadline cfq ,但大多数发行版使用默认的“CFQ”(完全公平队列)调度,它自2.6.18版本后一直是Linux的默认情况下的调度策略。这通常是一个很好的全面调度,并应提供良好的性能,同时共享访问驱动器“完全公平”这是试图在同一时间访问一个驱动器之间的所有不同的进程。在硬盘驱
mongoDB 系统选择部分小结 硬盘:primary及secondary都选择SSD,备库能选SAS就别选SATA,具体情况看同步的速度,如果同步真跟不上,那还必须上SSD;raid方面,趋向于home分区做radi10,数据分区做raid5;为什么raid5?这个跟业务有关!内存:作为数据库服务器,内存必须得大方点,特别是mongo这种对内存严重依赖的服务器,至少保证热数据和索引常驻内存,推介选择48G或以上;
MegaCli 监控raid状态 简介MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等。通常,我们对硬盘当前的状态不太好确定,一般通过机房人员巡检来完成,有没有通过软件的方式来检查确定这个问题呢。MegaCli就可以做到,一般通过 MegaCli 的Media Error Count: 0 Other Error C
mysq字段选择 mysql支持很多字段类型,包括数值类型、日期/时间类型和字符串(字符)类型;在使用时需要考虑到存储空间,存储效率;几种列类型描述使用了下述惯例:· M表示最大显示宽度。最大有效显示宽度是255。· D时间类型:datetime(8bytes),timestamp(4bytes)字符类型:VARCHAR(M),L+1个字节,其中L<=