Laravel new 项目缺少Vendor(composer忽略php7版本)
错误
Your requirements could not be resolved to an installable set of packages.
原因
php不匹配composer.json要求的版本
解决方法
composer install –ignore-platform-reqscomposer update –ignore-platform-reqscomposer create-project –prefer-dist laravel/laravel blog “5.5.*”
其他情况未满足一下条件
PHP >= 7.0.0
PHP OpenSSL 扩展
PHP PDO 扩展
PHP Mbstring 扩展
PHP Tokenizer扩展
PHP XML 扩展
数据库优化之索引优化
MySQL支持的索引类型
B-tree索引
Hash索引
B-tree索引特点
加快数据的查询速度
更适合进行范围查找原理
B+树的结构存储数据####适应范围
全值匹配的查询
匹配最左前缀的查询
匹配列前缀查询
匹配范围值的查询
精确匹配左前列并范围匹配另外一列
只访问索引的查询限制
如果不是按照索引最左列开始查找,则无法使用索引
使用索引时不能跳过索引中的列
Not in 和<>操作无法使用索引
如果查询中有某个列的范围查询,则其右边所有列都无法使用索引
Hash索引特点
Hash索引时基于Hash表实现的,只有查询条件精确匹配Hash索引中的所有列,才能够使用Hash索引。
对于Hash索引中的所有列,存储引擎都会为每一行计算一个Hash码,Hash索引中存储的就是Hash码原理
key-vlaue限制
二次读取
无法用于排序
不支持部分索引查找也不支持范围查找
Hash码的计算可能存在Hash冲突
为什么要使用索引
大大减少存储引擎需要扫描的数据量
帮助我们进行排序避免使用临时表
把随机I/O变为顺序I/O
索引是不是越多越好
索引会增加写操作的成本 ...
数据库优化之结构设计
设计好处
良好的数据库逻辑设计和物理设计师数据库获得高性能的基础
范式化设计和反范式化设计(减少冗余、减少异常、让数据组织的更加和谐)
优化目的
减少数据冗余(尽量)
尽量避免数据维护中出现更新、插入和删除等异常
插入:如果表中的某个实体随着另一个实体而存在
更新:如果更改表中的某个实体的单独属性时,需要对多表进行更新
删除:如果删除表中的某一时则会导致其他实体的消失
设计过程
需求分析
全面了解产品设计的需求
存储需求(比如一对多,多对一等)
数据处理需求
数据的安全性和完整性
逻辑分析
设计数据的逻辑存储结构
数据实体之前的逻辑关系,解决数据冗余和数据维护异常
物理设计
根据所使用数据特点设计表结构
维护优化
对索引、存储结构等进行优化
范式化
设计没有数据冗余和数据维护异常的数据库结构
反范式化
针对范式化而言的,在前面介绍了数据库设计的范式,所谓的反范式化就是为了性能和读取效率的考虑而适当的对数据库设计范式的要求进行违法,而允许存在少量的数据冗余,换句话来说反范式化就是使用空间来换取时间
本篇重点解释物理设计、范式化与反范 ...
数据库优化之实例和故事
简要:每一项技术都离不开数据库,数据库犹如人的大脑;密不可分,一旦出了问题(故障),停顿,卡主后果可想而知;潜心学习数据库优化3个月,现在将学到的经验分享给大家,希望能够跟各位PHP大神分享和学习探索,如果有不对或者好的建议告知下;*~*!
合理时间备份数据
备份数据,是每个项目维护的日常工作;有利于数据在系统遭受破坏或其他特定情况下,重新加以利用的一个过程;项目的备份时间,大都是根据项目需求来决定,比如:每小时,指定时间等;
案例: 某个项目正进行大型活动,数据库由于巨大用户量的访问以及定时备份;造成带宽出现峰值,大量执行操作处于队列状态,致使数据库停止工作;
方法:
若拓扑结构单一结构(单台数据库),停止定时任务(备份);
若拓扑结构非单一结构(主从/分布式),可停止定时任务;或主(数据库)放弃执行定时任务,从(数据库)执行;
###二、避免对大表操作
何谓大表,是指记录行数巨大,单标超过千万行;表数据文件巨大,表数据文件超过10G;
(1) 慢查询很难在一定时间内过滤出所需要的数据,原因:来源少->区分度低->大量磁盘IO->降低磁盘效率 ...
数据库优化之什么影响性能
影响性能的几个方面
服务器
硬件
系统
数据库
数据库存储引擎的选择(插件式存储引擎)
数据库参数配置(影响远远大于前面几个影响)
数据库结构设计和SQL语句等级| 特点 | 是否冗余 | 盘数 | 读 | 写
–|—|—|—|—|—|RAID0 | 便宜,快速,危险 | 否 | N | 快 | 快|RAID1 | 高速读,简单,安全| 有 | 2 | 快 | 慢|RAID5 | 安全,成本折中| 有 | N+1 | 快 |取决于最慢的盘|RAID10| 贵,高速,安全| 有 | 2N | 快 | 快|
服务器
服务器硬件
CPU密集型-不支持多CPU对同一SQL并发处理
并发量
内存
RAID增加传统集齐硬盘的性能
- 总结
- CPU
- 64位的CPU一定要工作在64位的系统下
- 对于并发比较高的场景CPU的数量比频率重要
- 对于CPU密集性场景和复杂SQL则频率越高越好
- 内存
- 选择主板所能适用的最高频率的内存
- 内存的大小对性能很重要,所以尽可能的大
- I/O子系统
- PCIe -> ...
Vue2.0 从零开始--生产部署
简要:继上次搭建vue环境后,开始着手vue的学习;为此向大家分享从开发环境部署到生产环境(线上)中遇到的问题和解决办法,希望能够跟各位VUE大神学习探索,如果有不对或者好的建议告知下;*~*!
如何打包,部署到生产环境(线上)1npm run build
1. dist 文件结构(编译后,生成在vue目录下)
static (存放css/js/image)
index.html (编译后页面)
2. 部署生产环境(以Thinkphp为例)
(1) 建立子项目,创建控制器建立index方法;实例化模板;将编译后index.html存放在对应的视图下;
(2) 修改vue配置文件(dist下status文件,默认存放在项目的根目录;若无须改变请忽略此步骤!)
不加载组件(非根目录)原因:路由path错误
刷新页面(刷新路由)出现4041. 为什么
1vue路由设置 HTML5 History 模式,直接访问/刷新url会被http server直接解析到该文件路径(被相应的框架接管),但vue的路由是虚拟的(只是告知编译后index ...
Vue2.0 从零开始--搭建环境
简要:继项目空闲后,开始着手vue的学习;为此向大家分享其中的艰辛和搭建办法,希望能够跟各位VUE大神学习探索,如果有不对或者好的建议告知下;*~*!
什么是VUE?是一种node.js框架,特点如下:
1.数据绑定 (特性:双向绑定;一旦发生变化,Dom节点实时更新;PS:尽量抛弃JQ,次特点已经可以解决很多特效等问题)
2.组件化(比如:乐高积木一样通过互相引用而组装起来)
开发环境
环境搭建1. 包管理器安装(1)Homebrew安装 (mac 环境,win无法安装)
1/usr/bin/ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
(2) node.js安装(win下前往node.js官网安装即可)
1brew install nodejs (mac 环境)
2. 相关安装指令(1) 淘宝镜像(当npm下载相关扩展超时,最为快 ...
php7+apache2.4+mysql 环境配置(window环境)
简要:最近,小主从事PHP开发。特将最近如何搭建php7的过程记录在此!希望有需要,可以借鉴!( 电脑必须win7 sp1以上, .netframework4 ) Windows7安装php7,Win7+php7+apache2.4,成功启动。
下载php7、apache2.4、mysql首先下载php7的windows压缩包,到这里下载http://windows.php.net/download/。对应版本:Php7 VC14 x86 Thread Safe
我选择的是php7的这个版本,由于它是vc14编译的,这意味着需要安装vc2015(即vc14)运行时环境,同时需要Apache2.4才可以运行php7 。
vc2015到这里下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=48145 运行安装。
需要注意,安装vc14必须开启这3个服务,否则一定会安装失败:
apache2.4到这里下载:Apache 2.4.17 Win32 http://www.apachelounge.com/ ...
app与php后台接口登录验证(seesion和token)
简要:随着电商的不断发展,APP也层次不穷,随着科技的发展主要登录形式(微信、QQ、账号/密码);为此向大家分享一下”app与php后台接口登录认证、验证”想法和做法;希望能够帮助困惑的伙伴们,如果有不对或者好的建议告知下;*~*!
登录机制粗略分析:登录可分为三个阶段(登录验证、登录持续、退出登录);登录验证指客户端提供账号/密码(或第三方平台(微信、qq)获取openid/unionid)向服务器提出登录请求,服务器应答请求判断能否登录并返回相应数据;登录持续指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器。退出登录指客户端退出登录状态。
方案,客户端登录成功后, 服务器为其分配seesionId和token, 客户端每次请求资源时都带上sessionId和token验证,当sessionId失效带上token重新获取sessionId从而获取相应资源;
登录状态seesionId登录状态指,客户端登录情况(登录中,未登录);简单登录流程如下:
1 、客户端向服务器第一次发起登录请求(不传输用户名和密码)。
2、服务器利用RSA算法产生一对公钥和私钥 ...