MySQL主备一致原理及配置
MySQL 是以容易学习和方便的高可用架构,被开发人员青睐的。而它的几乎所有的高可用架构,都直接依赖于 binlog。虽然这些高可用架构已经呈现出越来越复杂的趋势,但都是从最基本的一主一备演化过来的。 在状态 1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步过来,到本地执行。这样可以保持节点 B 和 A …
EXPLAIN用法和结果分析
1.EXPLAIN介绍 “EXPLAIN”用来获取关于查询计划的信息,以及如何解释输出。EXPLAIN命令会模拟优化器的执行计划(即EXPLAIN只是近似结果),MySQL会在SQL语句上做一个标记,当执行语句时,这个标记会使其返回关于在执行计划中每一步的信息,而不是执行它。它会返回一行或多行信息,显示出执行计划中每一部分和执行的次序。 注:并不是…
TCP协议概述
TCP的作用 先由一个浏览器输入网址,发送 HTTP GET 请求后发生的流程分析 TCP 的作用 如图: 有三个网络,一个是用户所在的客户端的网络比如wifi网络,中间的是广域网(可能是光纤,海底电缆等),第三个是企业的IDC(Internet Data Center)内部网络。 浏览器发起 GET 请求即 HTTP Request,HTTP R…
Redis-记录历史浏览记录
用有序集合记录用户的浏览记录 # self::MY_VIEWED 如:[my:viewed:] # self::HISTORY_NUM 每个用户最多保留的历史记录数 public function addView($user_id, $good_id) { $redis->zadd(self::MY_VIEWED . $user_id, ti…
Redis-基本数据结构
Redis可以存储键与五种不同数据结构类型之间的映射,这五种不同的数据结构类型分别为:STRING(字符串),LIST(列表),SET(集合),HASH(散列),和ZSET(有序集合)。部分命令是对所有类型都通用的如:DEL,TYPE,RENAME等; Redis提供的五种数据结构 结构类型结构存储的值结构的读写能力STRING可以是字符串,整数或…
解决MySQL数据库连接Sleep太多
造成睡眠连接过多的原因? 1. 使用了太多持久连接(个人觉得,在高并发系统中,不适合使用持久连接) 2. 程序中,没有及时关闭mysql连接 3. 数据库查询不够优化,过度耗时。 一般情况对以上三种情况可以分别这样处理: 1. 程序中,不使用持久链接,即使用mysql_connect而不是pconnect。 2. 程序执行完毕,应该显式调用mysq…
【PHP】记一次in_array的踩坑
先看一下踩坑的代码 var_dump( in_array(0,["s"])); 你觉得上面代码会输出 false ? 当时我也是这么觉得的,然鹅... 事实上输出的是 true 先看一下 in_array 函数的官方说明 in_array ( mixed $needle , array $haystack [, bool $st…
MySQL配置参数
这里记录一些mysql的my.cnf的配置项说明 innodb_buffer_pool注:缓冲池位于主内存中,InnoDB用它来缓存被访问过的表和索引文件,使常用数据可以直接在内存中被处理,从而提升处理速度;innodb_buffer_pool_instance注:MySQL5.6.6之后可以调整为多个。表示InnoDB缓冲区可以被划分为多个区域,…
网络故障排除命令
配置好相应的IP地址及相应的服务之后,可能在我们的服务器上是正常的。但是用户访问到我们的服务的时候,可能会服务不可达,或者服务出现一些奇形怪状的异常的情况。这时候,我们就需要通过故障排除的命令来判断故障发生的点是在什么位置。 常见的命令 ping 检测当前主机与目标主机是否畅通。如果ping不通则说明可能是出现了网络中断,或者说防火墙的情况出现。 …
MySQL根据存储过程生成测试数据
创建测试数据大表: mysql> CREATE TABLE `words` ( `id` int(11) NOT NULL AUTO_INCREMENT, `word` varchar(64) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; 创建存储过程: delimiter ;; crea…