MySQk主从复制

实现主从复制: master(主数据库)将改变的数据记录在本地的二进制日志中,该过程称之为二进制事件。 slave(从数据库)将master的二进制日志拷贝到自己的中继日志中。 将数据读取到自己的数据库中,中继日志事件。 MySQl主从复制是异步的,串行化的,有延迟 配置前 关闭防火墙,授权 1.


PHP常用算法

冒泡排序 /逐行对比,满足条件则交换 function bubbleSort($arrData,$sort = 'desc') { if(empty($arrData)) return $arrData; //默认有序 $isSorted = true; $nCou


进程,线程,协程

进程 打开一个程序会开启一个进程,进程里面包含线程,都可以完成多任务,进程是一个资源分配的单位,包括代码,cpu内存资源等,线程去调用进程的资源去完成任务,是一个系统资源调度的单位。 进程类似于一个工厂,而线程类似于工厂里面生产的工人。 线程是依赖进程的


sql慢日志查询

MySQl提供了一种日志记录,终于记录响应时间超过阈值的sql语句(long_query_time,默认10s),默认关闭,开发时打开,部署时关闭 检查是否开启慢查询日志:show variables like '%slow_query_log%' 临时开启:set gloabl slow_quer


性能优化-动态语言静态化

什么是动态语言静态化 将现有PHP等动态语言的逻辑代码生成静态HTML文件,用户访问动态脚本重定向到静态HTMl文件的过程 使用场景 对事实性要求不高的页面 为什么要静态化 动态脚本通常会做逻辑计算和数据查询,访问量越大,服务器压力越大 访问量大是可能会造成CPU负载过高,数据库服务器压力过大 静态


Redis命令及操作

redis-字符串命令及操作 set key val 设置 get key val 获取 mset user:1:name 张三 user:1:yue 123456 批量设置 mget user:1:name user:1:yue 批量获取 setnx key true 可以做分布式锁 del ke


避免索引失效的一些原则

mysql内部:连接层(提供与客户的服务)-》服务层(1提供各种接口,2sql优化器)-》引擎层(提供各种存储数据的方式)-》存储层(存储数据) 服务层中有sql优化器可能会影响优化 复合索引 跨列使用 如果有>,则自身和右侧全部失效() 尽量使用覆盖索引 like尽量以常量开头,不要意思'%'开头


性能优化-Web服务器的负载均衡

七层负载均衡实现 基于URL等应用层信息的负载均衡 Nginx的proxy是他的一个很强大的功能,实现开了七层负载均衡 功能强大,心更卓越,运行稳定 配置灵活 能够自动剔除工作不正常的后端服务器 上传文件使用异步模式 支持多种分配策略,可以分配权重,分配方式灵活 Nginx负载均衡 内置策略 IP


性能优化-数据库层优化

数据表数据类型的优化 tinyint,smallint,bigint按需选择数据类型 使用整形存储IP地址 索引优化 建立合适的索引 索引并不是越多越好,在合适的自段上创建合适的索引 复合索引的前缀原则 like查询%的问题 全表扫描优化 or条件索引适用情况 字符串类型索引失效问题 SQl语句的优


PHP基础知识-数据库篇

1:请写出下面MySQL数据类型表达式的意义(int(0),char(16),varchar(16),datetime,text) int(0):整形,宽度0 char(16)定长字符串,宽度16 varchar(16)变长字符串,宽度16 datetime事件日期类型 test字符串类型,存储大文