中间件与数据库:MySQL
向facebook学习,通过协程实现mysql查询的异步化
最近学习了赵海平的演讲,了解到facebook的mysql查询可以进行异步化,从而提高性能。由于facebook实现的比较早,他们不得不对php进行hack才得以实现。现在的php5.5,已经无需hack就可以实现了。 对于一个web网站的性能来说,瓶颈多半是来自于&
5.6 并行复制实现分析
我们知道MySQL的主备同步是通过binlog在备库重放进行的,IO线程把主库binlog拉过去存入relaylog,然后SQL线程重放 relaylog 中的event,然而这种模式有一个问题就是SQL线程只有一个,在主库压力大的时候,备库单个SQL线程是跑不过主库的多个用户线程的,这样备库延迟是不可避免的。为了解决这种n对1造成v
binlog拉取速度的控制
MySQL 主备之间数据同步是通过binlog进行的,当主库更新产生binlog时,备库需要同步主库的数据,通过binlog协议从主库拉取binlog进行数据同步,以达到主备数据一致性的目的。但当主库tps较高时会产生大量的binlog,以致备库拉取主库产生的binlog时占用较多的网络带宽,引起以下问题: 在MySQL中,Q
set names 都做了什么
最近有同事问,set names 时会同时设置了3个session变量 SET character_set_client = charset_name; SET character_set_results
MySQL高可用浅析
对于多数应用来说,MySQL都是作为最关键的数据存储中心的,所以,如何让MySQL提供HA服务,是我们不得不面对的一个问题。当master当机的时候,我们如何保证数据尽可能的...
通过协程实现mysql查询的异步化
最近学习了赵海平的演讲,了解到facebook的mysql查询可以进行异步化,从而提高性能。由于facebook实现的比较早,他们不得不对php进行hack才得以实现。现在的php5.5,已经无需hack就可以实现了。 对于一个web网站的性能来说,瓶颈多半是来自于&
InnoDB undo log 漫游
本文是对整个Undo生命周期过程的阐述,代码分析基于当前最新的MySQL5.7版本。本文也可以作为了解整个Undo模块的代码导读。由于涉及到的模块众多,因此部分细节并未深入。 前言 Undo log是InnoDB MVCC事务特性的重要组成部分。当我们对记录做了变更操作时就会产生undo记录,Undo记录默认被
个性化设置 MySQL prompt 提示符
下面谈 4 种方法 ㈠ 在 Bash 层修改 MYSQL_PS1 变量 [root@localhost ~]# export MYSQL_PS1="(\u@\h) [\d]> " [root@localhost ~]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.…
MySQL:如何实现高性能高并发的计数器功能(如:网站点击数)
这篇文章讨论了在实现网站文章点击数时,如何设计数据表以减轻数据库压力。文章提到了两种方法,一种是将文章详细内容和计数器放在同一张表中,但会导致并发问题和长等待时间;另一种是将计数器放在单独的表中,每个文章的计数器有多行,每次随机更新其中一行。文章还给出了插入和获取文章访问量的示例代码。作者提醒在加快读的速度时需要权衡开发成本和维护成本,找到一个平衡点。