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']