OneCoder

《HighPerformance MySQL》概译 事务

事务 事务是一组被看做一个整体的SQL请求。该组SQL被看成是原子的。如果所有的SQL都正常执行则数据确认请求,如果其中的任何一个失效,则所有的SQL都不生效。也就是说要么全成功,要么全失效。 本节并不是针对MySQL的,如果你已经事务的ACID特性了解,那么可以直接了解MySQL的事务特性。 银行系统是一个典型的需要事务特性的例子。假设系统有两张表支票账户和储蓄表。从Jane的...

《HighPerformance MySQL》概译 锁的粒度

一种提高共享资源并发效率的方式是合理的规划锁的范围。仅仅锁住你要修改的部分当然比全表锁住要好。所以,我们尽可能的最小化锁的范围,因为不相干的部分,本身也互不干扰。 不过,也要考虑到,锁是消耗资源的。每种锁的操作都有消耗,例如:获得锁,检查锁是否可用,释放锁等。如果系统花了过多的资源在锁的操作上,那么并发的性能就会受到影响。 锁的策略就是在锁的消耗和数据安全之间寻求一种平衡,这种平衡会...

《High Performance MySQL》概译 读/写锁

今天在微博看到消息该书的中文版已经翻译完成即将发售,所以OneCoder不再进行全文翻译,只会以类似读书笔记的方式记录文章大意和自己的理解。每天阅读的不会太多,因为只是休息的时候阅读,学习的重心最近在Hadoop上。 读写锁 多个用户同时读取邮件的时候不会有什么问题,以为没有人去修改文件。但是在有人正在的读的时候删除邮件就会产生问题。所以,出于安全考虑,读也应该特别关注。 这里...

《High Performance MySQL》翻译(3) 第一章 并发控制

并发控制 任何时刻当不止一个请求想要同时修改数据时候就产生了并发控制问题。从本章我们的观点来看,MySQL需要在两层关注这个问题:服务层和存储引擎层。并发控制是一个大话题,有很多相关的理论文献发表。所以,我们仅简介一下MySQL处理并发读写的方式。你将在本章的接下来的部分看到相关信息。 我们以Unix系统上的电子邮箱为例。传统的邮箱文件格式非常简单。邮箱中的所有信息是一个接一个的连接...

《High Performance MySQL》翻译(2) 连接管理和安全 优化和执行

接上篇,第一章 MySQL架构和历史 连接管理和安全 每个客户连接在服务内部都有一个独立的线程处理。查询在这个单独的线程内运行,线程轮流在CPU或核心上运行。线程在服务端被缓存,所以不必针对每个新来线程进行创建和销毁。(注2)。 当客户端(应用)连接到MySQL服务的时候,服务端需要进行认证。认证是基于用户名,来访主机和密码的。X.509认证也可用于通过SSL(安全套接层)进行...

High Performance MySQL 翻译 第一章 MySQL架构和历史 - 逻辑架构

《High Performance MySQL》是OneCoder正在阅读的书,利用茶余饭后时间进行的阅读和翻译,日积月累。 MySQL与其他数据库服务有很大的不同,它的架构特性使得它在广泛领域内成为一种实用而“廉价”的选择。MySQL并不是完美的,但是他足够灵活以适应特定的需求环境,如网络应用。同时,MySQL也可以支持嵌入式应用,数据仓库,内容索引和软件分发,高可用系统,联机事务处理等...

Linux 指定MySQL服务运行的CPU核心(数)

最近在利用mysqlslap对MySQL进行性能测试,但是测得的TPS、QPS的benchmark数据,从趋势上就跟网上“权威”的测试数据不同。这让OneCoder十分怀疑测试数据的准确性。 在定位问题的过程中,在独立于MySQL Server的机器上执行mysqlslap测试,测得的数据趋势正常。即初始随着并发数增大(一定范围内),TPS和QPS成上升趋势。这让...