摘要: 单例模式(Singleton) /*** * Class Singleton 单例模式 * 单例类不能再其它类中直接实例化,只能被其自身实例化。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。 * 1.私有的构造函数、克隆函数,防止外部代码new、clone * 2.私有的静态的成员变 阅读全文
posted @ 2020-06-27 18:17 zhoutianyuan 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 参考资料:https://www.php.net/manual/zh/language.oop5.php 多态,允许将子类类型的指针赋值给父类类型的指针。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承,它可以使用现有类的所 阅读全文
posted @ 2020-06-27 18:05 zhoutianyuan 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 覆盖索引的定义: 如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表。 只扫描索引而无需回表的优点: 1.索引条目通常远小于数据行大小,只需要读取索引,则mysql会极大地减少数据访问量。 2.因为索引是按照列值顺序存储的,所以对于IO密集的范围查找会比随机 阅读全文
posted @ 2020-06-27 18:00 zhoutianyuan 阅读(131) 评论(0) 推荐(0) 编辑
摘要: IOPS (Input/Output operations Per Second,既每秒处理I/O的请求次数) QPS (Query Per Second,既每秒请求、查询次数) TPS (Transcantion Per Second,既每秒事务数) 如果IOPS过高,分析原因: 内存不足,查询数 阅读全文
posted @ 2020-06-27 17:58 zhoutianyuan 阅读(959) 评论(0) 推荐(0) 编辑
摘要: MySQL中可以通过部分事务(savepoint)来实现嵌套 id 1 PHP中Laravel中事务嵌套(ManagesTransactions.php) <?php namespace Illuminate\Database\Concerns; use Closure; use Exception 阅读全文
posted @ 2019-07-01 14:31 zhoutianyuan 阅读(2798) 评论(0) 推荐(0) 编辑
摘要: 为什么查询速度会慢 1.慢是指一个查询的响应时间长。一个查询的过程: 客户端发送一条查询给服务器 服务器端先检查查询缓存,如果命中了缓存,则立可返回存储在缓存中的结果。否则进入下一个阶段 服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划。 MySQL根据优化器生成的执行计划,调用存储引擎 阅读全文
posted @ 2019-06-23 18:46 zhoutianyuan 阅读(1859) 评论(1) 推荐(1) 编辑
摘要: 查询状态 SHOW FULL PROCESSLIST 对于一个连接,或者说一个线程,任何时刻都有一个状态,该状态表示了MySQL当前正在做什么。 Id:线程号,可以kill User:所属用户 Host:所属主机 db:连接的数据库 Command:查询状态 Sleep 线程正在等待客户端发送新的请 阅读全文
posted @ 2019-06-23 18:11 zhoutianyuan 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 前言 1)在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和一致性以及数据库的一致性。 2)加锁是为了解决更新丢失问题 更新丢失 两次更新同时进行,后一次更新覆盖了前一次更新的情况,更新丢失是数据没有保证一致性导致的。 阅读全文
posted @ 2019-06-18 16:23 zhoutianyuan 阅读(834) 评论(0) 推荐(0) 编辑
摘要: Mysql Sharding 前言 1)Sharding是按照一定规则重新分布数据的方式 2)解决单机写入压力过大和容量问题 3) 解决单机查询慢的问题 4)本文主要根据用户登录场景分析 Sharding规则 1)垂直拆分,一般是表中的字段比较多,按照业务分类拆分到不同的表中。 2)水平拆分,一般是 阅读全文
posted @ 2019-06-17 16:10 zhoutianyuan 阅读(278) 评论(0) 推荐(0) 编辑