https://blog.csdn.net/junming4/article/details/53292122php
sort:用于对数组的值从低到高进行排序, 下标从新编号,从0开始html
----下标可有可无时使用前端
asort:用于对数组的值从低到高进行排序并保持索引关系,下标不变mysql
-----下标重要redis
ksort:对数组的索引进行排序,对应的值不变sql
------数组顺序按key排序mongodb
传值: 只是把值赋给变量数据库
对变量发生更改,值不会变apache
传引用: 把变量地址传给变量(共享)后端
对变量的值发生更改,值会发生变化
1. 相对于其余模板,速度快
2. 缓存技术:cache
3. 插件
4. 实现先后端分离,便于代码维护,二次开发
3306: MySQL
8080: Apache
11211: memcache
6379: redis
27017: mongodb
post比get传输量大,且相对安全
一、get是从服务器上获取数据,post是向服务器传送数据。
二、在客户端, get方式在经过URL提交数据,数据在URL中能够看到;post方式,数据放置在HTML HEADER内提交
四、get方式提交的数据最多只能有1024字节,而post则没有此限制
五、安全性问题。正如在2中提到,使用get的时候,参数会显示在地址栏上,而 post 不会。因此,若是这些数据是中文数据并且是非敏感数据,那么使用 get ;若是用户输入的数据不是中文字符并且包含敏感数据,那么仍是使用 post为好
GET产生一个TCP数据包;POST产生两个TCP数据包。
GET后退按钮/刷新无害,POST数据会被从新提交(浏览器应该告知用户数据会被从新提交)
GET能被缓存,POST不能缓存 。
GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中。
GET只容许 ASCII 字符。POST没有限制。也容许二进制数据。
GET和POST本质上就是TCP连接,并没有差异。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
session: 存在服务器上
cookie: 存在客户端
关闭cookie后, session 能正常使用吗>
如何修改session的生存时间
一组有序的数据库操做
1.四大特征
原子性
隔离性
一致性
持久性
2.面向对象的特征
封装,继承,多态,抽象
date('Y-m-d H:i:s' , time()-60*60*24)
date('Y-m-d H:i:s' ,strtotime("-1 day"))
echo 输出一个或者多个字符串
echo 不是一个函数
echo 没有返回值
print 输出字符串 不是函数, 返回值老是1
print_r 打印关于变量的易于理解的信息 , 返回值是布尔
printf 输出格式化字符串 返回输出字符串的长度
Smarty, Dwoo, tinyButStrong Templete Lite Savant, phemplate XTemplate
VSS适合团队whends CVS 适合小团队 SVN CVS升级版,
1.建立索引
2.hash表分区存储
3.尽可能不写子查询
分割表
4.创建合理数据库,合理运用 Enum
5.不要在数据库里发生运算
6.my.cnf设置, 最大链接数,查询缓存
7.选择合适的储存引擎
8.避免使用长链接
MySQL均衡负载
利用mysql主从复制 实现 更新操做和查询操做分流, 主要的实现是一台主服务器实现更新操做, 多台服务器实现查询操做 , 主从之间经过复制实现数据同步
出现的问题是 主数据库 更新频繁及网络问题 ,致使主从之间可能致使数据差别
mysql读写分离,异步复制
实时性要求不能过高
分布式数据库架构
分布式储存引擎只有innodb引擎支持 , 具体实现的时候,可使用mysql的Cluster功能(NDB引擎)
做用:实现高负载, 多台服务器均衡负载,
十二、apache+mysql+php实现最大负载的方法
1) 问的太笼统,生成静态html页面,squid反向代理,apache,mysql的负载均衡。
2) 能够采起数据缓存的方法,咱们一般在统计数据的时候,须要在原始数据的基础上通过计算等一系列操做,才会获得最终的结果,若是每作一个查询都须要这样一系列操做,当数据量大时,势必会带来不少问题。能够创建一个结果表,写一个脚本,用crontab定时触发脚本去原始表取数据,计算,写入到结果表,前端查询从结果表取数据,这也是比较经常使用的一种作法。
3) 采用分布式,多个apache,多个mysql,其实就是dns负载均衡,dns根据当前用户解析几个ip的ping值,将用户转移到某一台最快的服务器,或者平均分配。
建立索引:
create index 索引名称 on 表名(字段列表) 普通索引 ->什么字段均可以
create index 索引名称 on 表名(字段列表)
create unique index 索引名称 on 表名(字段列表) 建立惟一索引 ->字段必须惟一
alter table 表名 add primary key(字段名) 建立主键索引
联合主键:
alter table 表名 add fulltext index 建立全文索引(不支持中文)
sphinx corseek 中文分词索引
使用索引场景
匹配全值,范围查询,匹配最左前缀,仅对索引进行查询,匹配列前缀,索引部分等值匹配部分范围匹配,列名是索引
索引存在但不能使用索引的场景
以%开头的like查询
基于服务端来建立动态网站的脚本语言
首先查看是否被盗链, 谷歌有相关统计网站
若是流量能够承受的话, 节约成本能够用技术实现,
高并发会带来用户体验很差, 一个重要缘由是CPU和内存负载太高, 这这块用专业缘由来解释就是在网络没有问题的前提下 频繁的数据读写, 这点能够用 页面静态化 , memcache缓存, mysql优化 这几个方面着手
接着控制大文件的下载速度, 或者配置专门的服务器
若是预计流量过大的话, 能够投入资金的话 , 使用多台主机分流, 也是根治
控制大文件的下载速度, 或者配置专门服务器,
$_SERVER['remote_ADDR']
$_SERVER['SERVER_ADDR']