- 博客(83)
- 收藏
- 关注
原创 mysql分库分表策略
一、分表1、垂直拆分:根据表的字段数量2、水平拆分规则:根据特定字段取模,范围,hash二、分库1、垂直拆分:根据业务拆分订单数据过多时可给订单单独创建数据库2、水平拆分: 垂直拆分后的数据库根据规则进行水平拆分如:订单数据库表的设计首先思考:需要知道数据表的相关查询有哪些,清楚数据库查询时冷和热的查询,好去设计。不知道哪些查询,拆分时可能规则不合理,会造成拆分后性能越来越低查询规则:1、根据用户查询订单2、根据商家查询订单拆分规则:...
2021-03-22 23:32:39 1313
原创 PHP推荐标准编码规范(PSR-1,PSR-2,PSR-3,PSR-4,PSR-12)
PSR是PHP Standards Recommendation的简称PSR是php-fig组织制定的一套规范。官网:https://www.php-fig.org/下面是常用的几套规范:PSR-0:该标准不推荐使用,已被PSR-4替代。PSR-1:基本编码标准。PSR-2:该标准不推荐使用,已被PSR-12替代。PSR-3:日志记录器接口。PSR-4:自动加载。PSR-12:扩...
2020-01-05 23:08:17 2489
原创 PHP获取开始时间和结束时间之前的所有时间(数组)
PHP获取开始时间和结束时间之前的所有时间(数组)function prDates($start,$end){ $res=[]; $dt_start = strtotime($start); $dt_end = strtotime($end); while ($dt_start<=$dt_end){ $res[] = date('Y-m-d'...
2019-12-20 13:27:55 479
原创 Socket粘包,封包,拆包
粘包、拆包发生原因发生TCP粘包或拆包有很多原因,现列出常见的几点,可能不全面,欢迎补充,1、要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包。2、待发送数据大于MSS(最大报文长度),TCP在传输前将进行拆包。3、要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包。(服务端出现粘包)4、接收数据端的应用层没有及时读取接收缓...
2019-12-13 00:10:49 2287
原创 进程,协程,线程的概念与区别
进程:电脑运行的程序,CPU资源分配的最小单位协程:程序员写的程序,程序之间的切换由用户自行处理,节省了CPU的调度时间线程:一个进程下可以有多个线程,CPU调度执行的最小单位协程属于线程,线程属于进程进程间切换消化资源>线程间切换>协程间函数切换协程中的函数切换属于用户级别的操作,进程与线程的切换属于系统级别的切换,所有会更节约性能...
2019-12-01 17:03:28 159
原创 配置git push不用每次输入用户名和密码,修改git配置文件,保存git账户密码
1.使用ssh协议step 1: 生成公钥ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Generating public/private rsa key pair...# 三次回车即可生成 ssh keystep 2: 查看已生成的公钥cat ~/.ssh/id_rsa.pub# ssh-rsa AAAAB3NzaC1yc2EAAAA...
2019-07-23 14:03:47 646
原创 php 中curl 以POST方式提交数据到对应URL
简单方式:/** * 发送xml内容 * @param $url * @param $postfields * @return mixed */public function postXml($url,$postfields){ $ch = curl_init(); $params[CURLOPT_URL] = $url; //请求url地址 ...
2019-06-06 15:01:14 1640
原创 php 产生指定长度的随机字符串
/** * * 产生一个指定长度的随机字符串 * @param int $len 产生字符串的长度 * @return string 随机字符串 */private function genRandomString($len = 16) { $chars = array( "a", "b", "c", "d", "e", "f", "g", "h", "i", ...
2019-06-06 14:47:06 532
原创 创建vue实例
在已经建立的web项目上配置vue环境命令窗口切换到目录下,执行cnpm init配置相应内容,生成package.json文件,此时package文件dependencies插件依赖的开发环境还没有,执行cnpm install vue --sava(也可以cnpm install vue --sava-dev配置devDependencies),都是一样的,之后配置vue-re...
2019-03-23 17:48:47 296
原创 vue基础指令
filter 对接口的转换,比如货币、显示形式Vue基础指令:v-mode:双向绑定,用于文本框、输入框、单选、复选、下拉框等等,输入改变,模型也会改变;反之,模型改变,输入也会改变。v-text:更多的是一个文本的渲染,与{{ }}类似,只是在页面未加载完vue的时候,{{ }}会显示在页面上,所以一般采用v-text进行页面的渲染。v-show:控制DOM的显示隐藏v-i...
2019-03-23 10:32:30 193
原创 linux中搜索文件内容关键字
linux系统里的VI是编辑文本的命令,在vi里查找相应关键字的方法为: /关键字 ,回车即可。此为从文档当前位置向下查找关键字,按n键查找关键字下一个位置; ?关键字,回车即可。此为从文档挡圈位置向上查找关键字,按n键向上查找关键字; ...
2019-02-12 16:06:08 15159
原创 swoole之支持thinkPHP5
问题一:这种情况刚开始会报错:Uncaught think\exception\ErrorException: scandir() has been disabled for security reasons in /home/w********此处报错为找不到scandir()这个方法LNMP一键包为了安全考虑,默认禁用了scandir函数解决方法:...
2019-02-05 23:50:06 449
原创 swoole之异步redis
<?php/** * Created by PhpStorm. * User: baidu * Date: 18/3/13 * Time: 上午1:12 */$redisClient = new swoole_redis;// Swoole\Redis$redisClient->connect('127.0.0.1', 6379, function(swoole_r...
2019-02-05 21:13:01 345
原创 swoole之异步读取文件,异步文件写入,异步事件,异步MYSQL
异步读取文件 异步文件写入 异步事件 异步MySQL<?php/** * Created by PhpStorm. * User: Ty_Ro * Date: 2018/11/18 * Time: 17:21 */class Mysql{ public $mysql = ''; public $con...
2019-02-04 02:01:17 364
原创 swoole之锁机制
<?php/** * Created by PhpStorm. * User: Ty_Ro * Date: 2019/2/4 * Time: 1:28 *///创建锁对象$lock = new swoole_lock(SWOOLE_MUTEX); //互斥锁echo "创建互斥锁";$lock->lock(); //开始锁定 主进程if(p...
2019-02-04 01:42:59 485
原创 swoole之创建进程,进程事件
<?php/** * Created by PhpStorm. * User: Ty_Ro * Date: 2019/1/31 * Time: 17:32 *///创建进程//进程对应的执行函数function doProcess (swoole_process $worker){ echo "PID",$worker->pid,"\n"; sle...
2019-02-04 01:16:39 578
原创 swoole之异步TCP服务器
<?php/** * Created by PhpStorm. * User: Ty_Ro * Date: 2019/1/31 * Time: 16:58 */$serv = new swoole_server("0.0.0.0",9501);$serv->set(array('task_worker_num'=>4));//投递异步任务$...
2019-01-31 17:11:07 390
原创 swoole之定时器
<?php/** * Created by PhpStorm. * User: Ty_Ro * Date: 2019/1/31 * Time: 16:51 *///循环执行 定时器swoole_timer_tick(2000,function ($time_id) { echo "执行 $time_id \n";});//单次执行swoole_ti...
2019-01-31 16:55:30 171
原创 swoole之WebSocket服务器
<?php/** * Created by PhpStorm. * User: Ty_Ro * Date: 2019/1/31 * Time: 16:20 *///创建websocket服务器对象,监听0.0.0.0:9502端口$ws = new swoole_websocket_server("0.0.0.0", 9502);//监听WebSocket...
2019-01-31 16:48:07 335
原创 swoole之web服务器 swoole_http_server
<?php/** * Created by PhpStorm. * User: Ty_Ro * Date: 2018/11/8 * Time: 0:09 */$http = new swoole_http_server("0.0.0.0",8811);$http->set( [ 'enable_static_handler'=>...
2019-01-31 16:06:18 751
原创 swoole之UDP服务器
<?php//创建Server对象,监听 127.0.0.1:9502端口,类型为SWOOLE_SOCK_UDP$serv = new swoole_server("127.0.0.1", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);$serv->set([ 'worker_num' => 4, //worker进程数 ...
2019-01-31 15:11:05 353
原创 swoole之TCP服务器
<?php//创建Server对象,监听 127.0.0.1:9501端口$serv = new swoole_server("127.0.0.1", 9501);$serv->set([ 'worker_num' => 4, //worker进程数 一般是cpu的倍数 'max_request' => 1000 //最...
2019-01-31 14:54:50 257
原创 golang中printf用法
package mainimport "fmt"import "os"type point struct { x, y int}func main() {//Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2}//...
2019-01-29 13:25:55 4862
原创 事务四大特性及隔离级别详解示例
一、事务特性1、原子性:构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行2、稳定性:数据库在事务执行前后状态都必须是稳定的3、隔离性:事务之间不会相互影响4、持久性:事务一旦提交,其结果是永久的。 开启一个事务 $pdo=实例pdo的对象; $pdo->beginTransaction(); // 开启一个事务 $pdo-...
2019-01-28 16:26:23 666
原创 sql优化
获取有问题的sql:通过用户反馈,通过慢查询日志,实时获取存在问题的sql 实时获取有性能问题的sql :information_schema数据库下的processlist表select id,'user','host',DB,command,'time',state,info FROM information_schema.PROCESSLIST WHERE TIME>=...
2019-01-25 17:53:35 190
原创 数据库索引优化
B-tree索引的特点:B-tree索引以B+树的结构存储数据B-tree索引能够加快数据的查询速度B-tree索引更适合进行范围查找 叶子节点指针指向被索引的数据innode中叶子节点指向主键myisam中叶子节点指向数据的物理地址 在什么情况下可以用到B树索引1、全局匹配的查询:order_sn = '9876432119900'(和索引中的所有列进行匹...
2019-01-25 10:31:05 138
原创 读写分离和负载均衡
为什么读写分离,减少主库由于读压力造成负载,将读操作放到从服务器中,写操作必须在主数据库中 由程序实现读写分离由中间件来实现读写分离 由程序实现分离:优点:由开发人员控制什么查询在从库执行,因此比较灵活由程序直接连接数据库,所有性能损耗少缺点:增加开发人员工作量,使程序代码复杂,难维护;人为控制,容易出现错误 中间件实现读写分离:中间件工具:m...
2019-01-23 17:33:12 991
原创 mysql高可用架构之MHA架构
保证事务的一致性达到真正意义上的高可用 MHA提供了什么功能监控主数据库服务器是否可用当主DB不可用时,从多个从服务器中选举出新的主数据库服务器提供了主从切换和故障转移功能MHA可以与半同步结合提供主从切换和故障转移功能 MHA是如何进行主从切换的:尝试从出现故障的主数据库保存二进制日志从多个备选从服务器中选举出新的备选主服务器可以人为设置一...
2019-01-23 15:51:33 414
原创 mysql高可用架构之MMM架构
什么是高可用:指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性严重的主从延迟,主从复制中断,锁引起的大量阻塞 如何实现高可用:避免导致系统不可用的因素,减少系统不可以的时间因素:服务器磁盘空间耗尽,性能糟糕的sql,表结构和索引没有优化,主从数据不一致,人为的操作失误等等磁盘空间耗尽:备份或者各种查询日志突增导致的...
2019-01-23 13:57:46 4092
原创 mysql复制常见问题处理
一、由于数据损坏或丢失所引起的主从复制错误1、主库或从库意外宕机引起的错误:(宕机,部分数据未刷新到主机磁盘中,在这种情况下重启主从复制服务器后再次进行同步,从库尝试读取相关的二进制事件,然而在主库的二进制文件中没有二进制偏移量所代表的事件,在宕机时没有将这个事件保存到二进制文件中,会产生从库读取不到二进制日志的错误,从而造成链路中断)解决:跳过二进制日志事件;注入空事务的...
2019-01-20 21:08:12 600
原创 mysql高可用架构设计(主从复制,复制拓扑)
web服务器:对于web服务器可通过增加web服务器来分担负载MySQL:MySQL复制功能提供分担负载(读负载),通过水平增加数据库,复制基于主库的二进制日志,可能会存在延迟复制解决了什么问题:1、实现在不同服务器上的数据分布:利用二进制日志增量进行,不需要太多的带宽,但是使用基于行的复制在进行大批量的更改时会对带宽带来一定的压力(特别是在跨IDC环境下进行复制),复制应...
2019-01-20 20:21:17 520
原创 mysql数据库优化
数据库结构优化目的:1、减少数据冗余2、尽量避免数据维护中出现更新,插入和删除异常插入异常:如果表中的某个实体随着另一个实体而存在更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新删除异常:如果删除表中的某个实体会导致其他实体的消失3、节约数据存储空间4、提高查询效率数据库结构设计的步骤:1、需求分析:全面了解产品设计的存储需求,存储需求,数据...
2019-01-18 17:33:55 144 1
原创 mysql设计对性能的影响和mysql基准测试
过分的反范式化为表建立太多的列过分的范式造成太多的表关联,关联表控制在10个以内在OLTP环境中使用不恰当的分区表使用外键保证数据的完整性(效率低,尽量不要使用外键约束) 优化顺序:1、数据库结构设计和SQL语句:表结构优化,索引优化,sql语句的优化2、数据库存储引擎的选择和参数配置:存储引擎的选择和内存缓存池的配置,不要混合使用不同的存储引擎3、系统选择及性...
2019-01-18 11:33:16 159
原创 mysql存储引擎myisam,innoDB的区别
myisam表级锁,文件为三个,不支持事务,支持全文索引,支持数据压缩myisam的限制(5.0版本)<:单表最大文件4G,如要修改MAX_Rows和AVG_ROW_LENGTH适用场景:非事务应用,只读类应用(可以对数据文件压缩,在读取数据时加共享锁,共享锁读取不会堵塞),空间类应用 mysql5.5之后默认存储引擎InnoDB:InnoDB使用表空间进行,数据存储...
2019-01-17 15:37:13 145
原创 影响mysql性能的点(centos系统优化)
centos系统参数优化:net.core.somaxconn = 65535每个端口监听的队列的长度net.core.netdev_max_backlog = 65535每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目 net.ipv4.tcp_max_syn_backlog = 65535决定还未获得对方连接的请求可保存在队列中的最...
2019-01-16 21:29:03 458
原创 影响mysql性能的点(服务器硬件)
1、服务器硬件,(cpu不够块,内存不够多,磁盘IO太慢)2、服务器操作系统(配置)3、MySQL的存储引擎(myisam:不支持事务,表及锁。innodb:支持事务,行级锁)4、数据库参数配置(优化)(影响比前三个大)5、数据库结构设计和sql优化:慢查询,数据库表结构设计,sql语句编写和优化。 一、CPU选择:频率和线程不可兼得,贵应用是否是CPU密集型的(加快s...
2019-01-16 16:58:36 2713
原创 高性能mysql简要分析
在主服务器中不要远程备份,或者在大型活动之前停止远程备份等耗费资源的操作影响数据库查询性能因素:sql查询速度,服务器硬件,网卡流量,磁盘IO超高QPS和TPS会影响sql查询效率QPS是一秒钟处理请求的数量大多数80%的优化都可以通过慢查询解决,优化sql风险:大量的并发和超高的CPU使用率大量的并发:数据库连接数被占满(max_connections默认100)超高...
2019-01-16 14:39:34 131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人