12 2015 档案
摘要:一、几条mysql命令通过以下命令看一下mysql中 innodb_file_format的配置mysql> show engines;+--------------------+---------+--------------------------------------------------...
阅读全文
摘要:1、mysqladmin使用mysqladmin extended-status命令可以获得所有MySQL性能指标,即show global status的输出,不过,因为多数这些指标都是累计值,如果想了解当前的状态,则需要进行一次差值计算,这就是mysqladmin extended-status...
阅读全文
摘要:1、简介涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,避免 emoji 表情符号带来的问题MySQL Server > 5.5.32、配置+升级当前配置mysql> \s--------------mysql Ver 14.14 Distrib 5.1.73, for ...
阅读全文
摘要:一、MVCC简介MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系...
阅读全文
摘要:一、CPU最大性能模式cpu利用特点5.1 最高可用4个核5.5 最高可用24核5.6 最高可用64核心一次query对应一个逻辑CPU你仔细检查的话,有些服务器上会有的一个有趣的现象:你cat /proc/cpuinfo时,会发现CPU的频率竟然跟它标称的频率不一样:#cat /proc/cpui...
阅读全文
摘要:一、自动加载定义很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本开头写一个长长的包含文件列表(每个类一个文件)。在 PHP 5 中,不再需要这样了。可以定义一个__autoload()函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数...
阅读全文
摘要:一、复制的常用拓扑结构复制的体系结构有以下一些基本原则:(1) 每个slave只能有一个master;(2) 每个slave只能有一个唯一的服务器ID;(3) 每个master可以有很多slave;(4) 如果你设置log_slave_updates,slave可以是其它slave的master,从...
阅读全文
摘要:一、MySQL存在的问题优化器对复杂SQL支持不好对SQL标准支持不好大规模集群方案不成熟,主要指中间件ID生成器,全局自增ID异步逻辑复制,数据安全性问题Online DDLHA方案不完善备份和恢复方案还是比较复杂,需要依赖外部组件展现给用户信息过少,排查问题困难众多分支,让人难以选择二、数据库环...
阅读全文
摘要:sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL/Drizzle,它主要包括以下几种方式的测试:cpu性能磁盘io性能调度程序性能内存分配及传输速度POSIX线程性能数据库性能(OL...
阅读全文
摘要:一、乐观锁介绍乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检,乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是...
阅读全文
摘要:一、什么是spinlockspinlock又称自旋锁,是实现保护共享资源而提出一种锁机制。自旋锁与互斥锁比较类似,都是为了解决对某项资源的互斥使用无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申...
阅读全文
摘要:关于mysql中的锁在并发环境下,有可能会出现脏读(Dirty Read)、不可重复读(Unrepeatable Read)、 幻读(Phantom Read)、更新丢失(Lost update)等情况,所以mysql引入了很多锁的概念MySQL InnoDB对数据行的锁定类型一共有四种:共享锁(读...
阅读全文
摘要:一、锁的种类MySQL中锁的种类很多,有常见的表锁和行锁,也有新加入的Metadata Lock等等,表锁是对一整张表加锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做ddl处理时使用。行锁则是锁住数据行,这种加锁方法比较复杂,但是由于只锁住有限的数据,对于其它数据不加限制...
阅读全文
摘要:为了解决性能问题,你登入了一台Linux服务器,在最开始的一分钟内需要查看什么?你可以在几分钟内就对系统资源的使用情况和进程的运行状况有大体上的了解。无非是先查看错误信息和饱和指标,再看下资源的使用量1、之前发生了什么[root@localhost ~]# history 1 2015-12...
阅读全文
摘要:生产系统随着业务增长总会经历一个业务量由小变大的过程,可扩展性是考量数据库系统高可用性的一个重要指标;在单表/数据库数据量过大,更新量不断飙涨时,MySQL DBA往往会对业务系统提出sharding的方案。既然要sharding,那么不可避免的要讨论到sharding key问题,在有些业务系统中...
阅读全文
摘要:PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境可以在PHP5.4和之上版本中使用。在PHP5.6和之上版本将内部集成功能单步调试灵活的下断点方式(类方法、函数、文件:行、内存地址、opcode)可直接调用php的eval可以查看当前执行的代码用户空...
阅读全文
摘要:1、简介GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端2、调试C/C++程序直接上代码了#includeusing namespac...
阅读全文
摘要:Database Sharding@Netlog详细的描述了 Netlog 数据库架构的演变过程,文章浅显易懂,非常值得学习。本文数据、图片均来自:Database Sharding at Netlog, with MySQL and PHP数据约4000万活跃用户每月约5000万独立访问每月约50...
阅读全文
摘要:1、Redis中key的的过期时间 通过EXPIRE key seconds命令来设置数据的过期时间。返回1表明设置成功,返回0表明key不存在或者不能成功设置过期时间。在key上设置了过期时间后key将在指定的秒数后被自动删除。被指定了过期时间的key在Redis中被称为是不稳定的。 当key被D
阅读全文
摘要:1. 前言在高访问量的web系统中,缓存几乎是离不开的;但是一个适当、高效的缓存方案设计却并不容易;所以接下来将讨论一下应用系统缓存的设计方面应该注意哪些东西,包括缓存的选型、常见缓存系统的特点和数据指标、缓存对象结构设计和失效策略以及缓存对象的压缩等等,以期让有需求的同学尤其是初学者能够快速、系统...
阅读全文