整理

HTML中DTD意義和作用

DTD文檔類型定義,是一種保證html文檔格式正確的有效方法,在解析網(wǎng)頁時,瀏覽器將使用DTD來檢查頁面的有效性(是否符合規(guī)范,元素和標簽使用是否正確) 并且采取相應的措施.同時它還會影響瀏覽器的渲染模式(工作模式)

XHTML和HTML的區(qū)別

xhtml必須強制指定義文檔類型
XHTML所有標簽必須閉合,html比較隨意
xhtml嚴格區(qū)別大小寫,所有標簽的元素和屬性的名字都必須使用小寫
xhtml要求所有標記都必須要有一個相應的結(jié)束標記
xhtml規(guī)定所有屬性都必須有一個值,沒有值就重復本身 比如checked="checked" 

div和span標簽的區(qū)別

語義化角度:div,span對于包含元素無意義,P是語義化標簽,表示一個段落
顯示角度: span行內(nèi)元素前后不斷行(內(nèi)聯(lián)元素) 
div,p 是塊級元素,要斷行且P斷兩行

列舉常用的meta元素

<meta name='kegwords' content=''> 向搜索引擎說明你的網(wǎng)頁的關鍵詞

<meta http-equiv="Pragma" content="no-cache" />  禁止瀏覽器從本地計算機的緩存中訪問頁面內(nèi)容

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 用于告知瀏覽器以何種版本渲染當前頁面

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 舊的 不推薦  <meta charset="UTF-8" >  html5推薦

<meta http-equiv="refresh" content="30;URL="http://www.baidu.com" >
讓網(wǎng)頁在一定的時間內(nèi)刷新自己挫望,或者在多長時間后跳轉(zhuǎn)到其他網(wǎng)頁

<meta http-equiv="Cache-Control" content="no-siteapp" />
避免百度打開網(wǎng)頁時可能會對其進行轉(zhuǎn)碼

<meta http-equiv="expires" content="Sat, 29 Apr 2017 04:25:02 GMT" >
指定網(wǎng)頁的過期時間畴蒲,過期后必須重新請求服務器

<meta name="description" content="前端博客知識分享" />
網(wǎng)站內(nèi)容描述,用來告訴搜索引擎你網(wǎng)站的主要內(nèi)容

<meta name="author" content="Caroline,xx@xxxx.com" />
標注網(wǎng)頁的作者 比如 phpopenfather--

<meta name="renderer" content="webkit/ie-comp/ie-stand" /> 
雙核瀏覽器的渲染方式性穿,用于指定雙核瀏覽器默認以何種方式渲染頁面

怪異模式和xhtml模式下IE的寬的區(qū)別

標準模式指瀏覽器按照w3c標準解析執(zhí)行代碼
怪異模式則是使用瀏覽器自己的方法解析執(zhí)行代碼,解析模式與網(wǎng)頁中DTD聲明直接相關,忽略DTD聲明,將是網(wǎng)頁進入怪異模式

如何添加html元素事件

直接視同元素的屬性 如<img onclick = 'alert(1)'; />
使用DOM0級事件,簡單,兼容性好
使用DOM2級事件,功能更強大 在非標準瀏覽器中使用addEventListener

strlen()和mb_strlen

都是用于獲取字符串長度
strlen計算的是字符串的總字節(jié)數(shù),只針對單字節(jié)編碼字符
mb_stalen 獲取字符數(shù),要開啟mbstring擴展并制定字符集

include與require

都是把另外一個文件包含到當前文件 
include被包含的文件不存在的話,提示錯誤 代碼繼續(xù)執(zhí)行
require包含文件不存在的話或無法打開 導致一個致命錯誤 中斷代碼執(zhí)行
include_once和require_one被包含的文件只引入一次,可避免重復引入

預定義全局變量

 $_SERVER['REMOTE_ADDR']  瀏覽當前頁面的用戶的 IP 地址
    $_SERVER['REMOTE_HOST']  瀏覽當前頁面的用戶的主機名
    $_SERVER['REMOTE_PORT']  用戶機器上連接到 Web 服務器所使用的端口號
 
    $_SERVER['SERVER_ADDR']  當前運行腳本所在的服務器的 IP 地址    
    $_SERVER['SERVER_NAME']  當前運行腳本所在的服務器的主機名
    $_SERVER['SERVER_PORT']  當前運行腳本所在的服務器的端口號
 
    $_SERVER['REQUERT_METHOD']  訪問頁面使用的請求方法
    $_SERVER['REQUERT_TIME']  請求開始時的時間戳
    $_SERVER['REQUEST_URI']  URI 用來指定要訪問的頁面
    $_SERVER['QUERY_STRING'] query string(查詢字符串),如果有的話,通過它進行頁面訪問释漆。 
 
    $_SERVER['SCRIPT_FILENAME']  當前執(zhí)行腳本的絕對路徑。 
    $_SERVER['HTTP_HOST']  當前訪問頁面的域名
 
    當前訪問頁面的地址 $_SERVER['HTTP_HOST']. $_SERVER['REQUEST_URI']  

GET和POST

get發(fā)送請求HTTP協(xié)議通過url參數(shù)傳遞進行接收,而POST是實體數(shù)據(jù),可以通過表單提交大量信息
get不安全,數(shù)據(jù)會顯示在url地址欄 ,Post比較安全
get有限制255字符大小限制2KB  post從理論上來數(shù)無限制 默認設置為8M 可通過php.ini中設置
get值分開傳送,post把值集中傳送
get非常靈活  , post必須依存表單

echo print print_r()

echo 是一個語言結(jié)構,輸出一個或多個字符串
print 實際上不是一個函數(shù) 而是一個語言結(jié)構,因此可以不加括號 輸出一個字符串
print_r()是一個函數(shù),打印變量的信息,基本類型數(shù)組,對象

sort() asort() ksort()

sort 根據(jù)數(shù)組中元素的值以英文字母順序排序,索引鍵會由0到n-1重新編號,主要是當數(shù)組索引鍵的值無關緊要時用來把數(shù)據(jù)排序
asort() 對數(shù)組進行排序 數(shù)組的索引保持和單元關聯(lián),主要用于對那些單元順序很重要的結(jié)合數(shù)組進行排序
ksort() 根據(jù)數(shù)組中索引鍵的值,以英文字母順序排序,特別適合用于希望把索引鍵排序的關聯(lián)數(shù)組

PHP

php是超文本預處理器的字母縮寫是一種被廣泛應用的開放源代碼的多用途腳本語言,可嵌入html,尤其適合web開發(fā)
php腳本有三個領域
1)服務器腳本
2)命令行腳本
3)編寫桌面應用程序

數(shù)組涉及到的常用函數(shù)

array--聲明一個數(shù)組
count -- 計算數(shù)組中單元數(shù)目或?qū)ο笾械膶傩詡€數(shù)
foreach -- 遍歷數(shù)組
list -- 遍歷數(shù)組 可用于交換變量值
explode -- 將字符串轉(zhuǎn)成數(shù)組
implode -- 將數(shù)組轉(zhuǎn)成一個新字符串
array_merge -- 合并一個或多個數(shù)組
is_array -- 檢查是否是數(shù)組
print_r  --  輸出數(shù)組
sort -- 數(shù)組排序
array_keys -- 返回數(shù)組中所有的鍵
array_values -- 返回數(shù)組中所有的值
key --從關聯(lián)數(shù)組中取得鍵名

字符串的常用函數(shù)

trim() -- 去除首尾空格
strlen() -- 字符串長度
strpos() --找字符串在另一字符串中第一次出現(xiàn)的位置
substr() -- 截取字符串
str_replace() -- 替換字符串函數(shù)
substr_replace() -- 對指定字符串中的部分字符串進行替換
strstr() -- 檢索字符串函數(shù)
implode() -- 將數(shù)組合并成字符串
str_repent() -- 重復一個字符串
addslashes() -- 轉(zhuǎn)義字符串
htmlspelialchars() HTML實體轉(zhuǎn)義

sql安全性

防止sql注入 -- 對特殊字符進行轉(zhuǎn)義,過濾或使用預編譯的sql語句綁定變量
最小權限原則 -- 為不同類型的動作或組件使用不同的賬戶 特別不要使用root賬戶
當sql運行出錯時不要把數(shù)據(jù)庫返回的錯誤信息全部顯示給用戶,以防止泄露服務器和數(shù)據(jù)庫相關信息

索引 主鍵 唯一索引 聯(lián)合索引

索引是一種特殊的文件,包含著對數(shù)據(jù)表里所有記錄的引用指針

普通索引(index) 的唯一任務是加快對數(shù)據(jù)的訪問速度

唯一索引和 普通索引 允許被索引的數(shù)據(jù)列包含重復的值 ,如果能確定某個數(shù)據(jù)列將只包含彼此各不同的值就可以使用關鍵字unique定義為唯一索引 可保證數(shù)據(jù)記錄的唯一性

主鍵:特殊的唯一索引,在一張表中只能有一個主鍵索引,用于唯一標識一條記錄

聯(lián)合索引:索引可以覆蓋多個數(shù)據(jù)列

索引可以極大的提高數(shù)據(jù)的查詢速度,但是會降低插入,刪除,更新表的速度, 因為在執(zhí)行這些操作時,還要操作索引文件

sql優(yōu)化

盡量選擇較小的列
將where中用的比較頻繁的字段建立索引
select 字句避免使用'*'
避免在索引列上使用計算 .<> . not in 的操作
當只需要一行數(shù)據(jù)時 使用limit 
保證表單數(shù)據(jù)不超過200w 適當分割表 - 分區(qū) -分表
針對查詢慢的sql語句使用explain分析語句具體的執(zhí)行情況

mysql_fetch_row 和mysql_fetch_array

mysql_fetch_row() 是從指定的結(jié)果標識關聯(lián)的結(jié)果集中取得一行數(shù)據(jù)并作為數(shù)據(jù)返回,每個結(jié)果的列儲存在一個數(shù)組的單元中 偏移量(下標)從0開始
mysql_fetch_array 是fetch_row 的擴展版本,除了將數(shù)字索引方式存儲存在數(shù)組之外,還可以將數(shù)據(jù)作為關聯(lián)索引存儲,用字段名作為鍵名
mysql_fetch_array 中可選的第二個參數(shù) result_type 是一個常量可以接受以下值:mysql_assoc mysql_num和mysql_BOTH 其默認值為mysql_BOTH

PHP訪問數(shù)據(jù)庫的步驟

mysql_connect ('127.0.0.1','root','root','數(shù)據(jù)庫名')  連接數(shù)據(jù)庫
mysql_select_db('數(shù)據(jù)庫名') 選擇數(shù)據(jù)庫
mysql_query('set names utf8') 設置字符集
mysql_query(sql) 執(zhí)行sql語句
mysql_close($link) 關閉連接

mysql外連接 內(nèi)連接,自連接?

交叉連接又稱笛卡爾積,它是指不使用任何條件,直接將一個表的所有記錄和另一個表中的所有記錄一一匹配

內(nèi)連接則是只有條件的交叉連接,根據(jù)某個條件篩選出符合條件的記錄,不符合條件的記錄不會出現(xiàn)的結(jié)果集中,即內(nèi)連接只有連接匹配的行

外連接 其結(jié)果集不僅包含符合連接條件的行,而且還會包含左表和右表或兩個表中的所有數(shù)據(jù)行,有一次稱之為左外連接,右外連接

左連接 也稱為左連接,左表為主表為主表,左表中的所有記錄都會出現(xiàn)在結(jié)果集中,對于那些在右表中并沒有匹配的記錄,仍然要顯示,右表也對應的那些字段值以NUll來填充

右外連接 也稱右連接,右表為主,右表中的所有記錄都會出現(xiàn)在結(jié)果集中

MySQL中MYISAM和InnoDB

a. MyISAM類型不支持事務處理等高級處理剪决,而InnoDB類型支持.
b. MyISAM類型的表強調(diào)的是性能灵汪,其執(zhí)行數(shù)度比InnoDB類型更快.
c. InnoDB不支持FULLTEXT類型的索引.
d. InnoDB 中不保存表的具體行數(shù),也就是說柑潦,
執(zhí)行select count(*) from table時享言,InnoDB要掃描一遍整個表來計算有多少行,
但是MyISAM只要簡單的讀出保存好的行數(shù)即可.
e. 對于AUTO_INCREMENT類型的字段渗鬼,InnoDB中必須包含只有該字段的索引览露,但是在MyISAM表中,可以和其他字段一起建立聯(lián)合索引譬胎。
f. DELETE FROM table時差牛,InnoDB不會重新建立表,而是一行一行的刪除堰乔。
g. LOAD TABLE FROM MASTER操作對InnoDB是不起作用的偏化,解決方法是首先把InnoDB表改成MyISAM表,導入數(shù)據(jù)后再改成InnoDB表镐侯,
但是對于使用的額外的InnoDB特性(例如外鍵)的表不適用.
h. MyISAM支持表鎖侦讨,InnoDB支持行鎖。

存儲過程的適用情況

當需要處理復雜的查詢和運算時,可以使用存儲過程

從應用分層的原則,大量使用存儲過程導致業(yè)務邏輯分散在DB和應用服務器層,不利于維護和更新

總體來說,存儲程序可以用,但要慎用,最好只用來維護,不利于業(yè)務邏輯和支撐高并發(fā)性能的東西

MVC

MVC是一種架構設計模式是一種設計理念.是為了達到分層設計的目的,從而使代碼解耦合,便于維護和代碼的復用,通俗來說,MVC可以讓你的代碼結(jié)構更加清晰明了
它的實現(xiàn)是把代碼分為模型,視圖,控制器三個部分,model層負責提供數(shù)據(jù),和數(shù)據(jù)庫有關的操作都交給模型層來處理,view層則提供交互的界面,并輸出數(shù)據(jù),二controller層負責接收請求,并分發(fā)給相應的model來處理,然后給view層來顯示

GD

GD庫提供了一系列用于處理圖片的API,使用GD庫可以處理圖片或者生成圖片,在網(wǎng)站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網(wǎng)站數(shù)據(jù)生成報表

SESSION和COOKIE

cookie 保存在客戶端 而session保存在服務端
從保存內(nèi)容的類型角度來講,cookie只保存字符串和數(shù)字,而session可以保存除資源以外所有的數(shù)據(jù)類型
從保存內(nèi)容的大小角度來講,cookie保存的內(nèi)容比較小,只有2K左右 而session從理論來說無限制
從性能上角度來說,session對服務器的壓力更大
禁用cookie的話cookie失效,而session可以不基于cookie而是用get或SID 仍然生效

狀態(tài)碼

200  -OK 服務器成功處理請求
301  - 重定向錯誤
301  - 自從上一次未修改,瀏覽器讀取緩存
403  - 禁止  請求被服務器拒絕
404  - 未找到資源
500  - 服務器錯誤
503 : 服務器臨時維護或過載苟翻。這個狀態(tài)時臨時性的韵卤。

AJAX

ajax是javascript/xml/css/dom等多個技術的組合
工作原理是一個頁面的指定位置可以加載另一個頁面的所有輸出的內(nèi)容這樣就實現(xiàn)了一個靜態(tài)網(wǎng)頁在不刷新整個頁面的情況下也能獲取數(shù)據(jù)庫中的返回數(shù)據(jù)信息
核心技術:xml/httpRequest 它是javascript中的一個對象
優(yōu)點:減輕了服務器端負擔,將一部分以前有服務器負擔的工作轉(zhuǎn)移到客戶端,利用客戶端閑置的資源進行處理了再只局部刷新的情況下更新頁面,減少了用戶等待時間,同時也降低了網(wǎng)絡流量,增強了客戶體驗度
缺點: 不利于SEO推廣優(yōu)化,因為搜索引擎無法直接訪問到ajax請求的內(nèi)容

大型項目優(yōu)化的方向

代碼優(yōu)化
開啟opcode緩存,減少額外CPU和內(nèi)存開銷崇猫,加快代碼運行速度
重模型輕控制器沈条,減少冗余
符合PHP-FIG規(guī)范和phpDoc規(guī)范,增強代碼可讀性&可擴展性有利于團隊開發(fā)
類: 花括號獨占一行
類中方法:華括號獨占一行
類名:大駝峰
方法名:小駝峰
命名空間:后面空一行
常量名:大寫诅炉,多個單詞用下劃線分割

數(shù)據(jù)庫優(yōu)化
架構:主從復制蜡歹、讀寫分離
設計:存儲引擎、字段類型涕烧、三范式
功能:緩存季稳、分區(qū)、索引

緩存優(yōu)化
好處:減少數(shù)據(jù)庫查詢澈魄,將數(shù)據(jù)緩存景鼠,加快查詢數(shù)據(jù)
實現(xiàn):
內(nèi)存(memcache、redis)
文件(使用TP3.2的大S或大F方法  TP5中Cache類) 

架構優(yōu)化
負載均衡、集群铛漓、動靜分離溯香、讀寫分離、主從復制浓恶、CDN加速等
    負載均衡:將用戶的請求分配給多個服務器處理(輪著來玫坛,ip哈希)
    集群:多個服務器實現(xiàn)相同的業(yè)務
    分布式概念:多臺服務器實現(xiàn)不同的業(yè)務
    動靜分離:將靜態(tài)資源單獨放一臺服務器
    主從復制:insert/update/delete到主服務器執(zhí)行,所有從服務器檢測主服務器有寫入數(shù)據(jù)則自動同步
    讀寫分離:通過PHP判斷包晰,如果是insert/update/delete交給主處理湿镀,如果是select交給從服務器
    CDN加速:將靜態(tài)資源緩存到用戶所在城市,加快訪問速度

memcache

就是一個數(shù)據(jù)庫伐憾、但是數(shù)據(jù)存在內(nèi)存中
用來做緩存服務器勉痴、將從數(shù)據(jù)庫查詢的數(shù)據(jù)緩存起來,減少數(shù)據(jù)庫查詢树肃、加快查詢速度

memcached 內(nèi)部不會監(jiān)視記錄是否過期
檢查記錄是否過期.這種技術被稱為惰性過期
好處 : 減少監(jiān)控過期產(chǎn)生的開銷

最近最少使用算法 (LRU:Least Recently Used)
緩存空間已滿 采用LRU策略
將使用頻率最低數(shù)據(jù)進行刪除


單個key鍵名最大長度為多少?
最大長度是250個字符
單個鍵最大存儲數(shù)據(jù)為 1M
最大存儲時間為30天 (3600*24*30) 內(nèi)都可以
0 為理論上永久 重啟后數(shù)據(jù)會消失 數(shù)據(jù)滿后 LRU也可以移除

事務

是作為一個單元的一組有序的數(shù)據(jù)庫操作,如果組中的所有操作都成功,則為事務成功,即使只有一個操作失敗,事務整個都不會成功,如果所有操作完成,事務則提交其修改將作用于所有其他數(shù)據(jù)庫進程,如果一個操作失敗,則事務回滾,改事務所有操作的響應都將取消

如何得到一個網(wǎng)頁的內(nèi)容

file_get_contents
fopen & stream_get_contents

實際開發(fā),常量應用在哪里

連接數(shù)據(jù)庫的信息
斬斷部分路徑
網(wǎng)站公告信息

memcached蒸矛、redis 和MySQL

Redis 和 memcached :
1、Redis只使用單核胸嘴,而Memcached可以使用多核雏掠。
2、Redis在存儲小數(shù)據(jù)時比Memcached性能更高劣像;而在100k以上的數(shù)據(jù)中乡话,Memcached性能要高于Redis
3、簡單的key-value存儲耳奕,Memcached的內(nèi)存利用率更高绑青。而如果Redis采用hash結(jié)構來做key-value存儲,由于其組合式的壓縮吮铭,其內(nèi)存利用率會高于Memcached
4时迫、如果對數(shù)據(jù)持久化和數(shù)據(jù)同步有所要求颅停,那么Redis性能高于Memcached
5谓晌、Redis相比Memcached來說,擁有更多的數(shù)據(jù)結(jié)構癞揉,并支持更豐富的數(shù)據(jù)操作
6纸肉、在Redis中,復雜的操作通常和一般的GET/SET一樣高效喊熟。需要緩存能夠支持更復雜的結(jié)構和操作柏肪,所以Redis 在這方面的性能要更高

memcached和MySQL的query cache:
1、當修改表時芥牌,MySQL的query cache會立刻被刷新(flush)烦味。存儲一個memcached 數(shù)據(jù)只需要很少的時間,但是當寫操作很頻繁時,MySQL的query cache會經(jīng)常讓所有緩存數(shù)據(jù)都失效
2谬俄、在多核CPU上柏靶,MySQL的query cache會遇到擴展問題,同時query cache會增加一個全局鎖(global lock), 由于需要刷新更多的緩存數(shù)據(jù)溃论,速度會變得更慢
3屎蜓、MySQL的query cache中,是不能存儲任意的數(shù)據(jù)的钥勋,只能是SQL查詢結(jié)果炬转。而利用memcached,我們可以搭建出各種高效的緩存算灸。比如扼劈,可以執(zhí)行多個獨立的查詢,構建出一個用戶對象(user object)乎婿,然后將用戶對象緩存到memcached中测僵。而query cache是SQL語句級別的,不可能做到這一點谢翎。在小的網(wǎng)站中捍靠,query cache會有所幫助,但隨著網(wǎng)站規(guī)模的增加森逮,query cache的弊將大于利榨婆。
4、query cache能夠利用的內(nèi)存容量受到MySQL服務器空閑內(nèi)存空間的限制褒侧。給數(shù)據(jù)庫服務器增加更多的內(nèi)存來緩存數(shù)據(jù)良风,固然是很好的。但是闷供,有了memcached烟央,只要有空閑的內(nèi)存,都可以用來增加memcached集群的規(guī)模歪脏,然后就可以緩存更多的數(shù)據(jù)疑俭。

redis相比memcached有哪些優(yōu)勢

1) memcached所有的值均是簡單的字符串,Redis作為其替代者婿失,支持更為豐富的數(shù)據(jù)類型 
(2) redis的速度比memcached快很多 
(3) redis可以持久化其數(shù)據(jù)

適用memcached的業(yè)務場景

1)如果網(wǎng)站包含了訪問量很大的動態(tài)網(wǎng)頁钞艇,因而數(shù)據(jù)庫的負載將會很高。由于大部分數(shù)據(jù)庫請求都是讀操作豪硅,那么memcached可以顯著地減小數(shù)據(jù)庫負載哩照。
2)如果數(shù)據(jù)庫服務器的負載比較低但CPU使用率很高,這時可以緩存計算好的結(jié)果( computed objects )和渲染后的網(wǎng)頁模板(enderred templates)懒浮。
3)利用memcached可以緩存 session數(shù)據(jù) 飘弧、臨時數(shù)據(jù)以減少對他們的數(shù)據(jù)庫寫操作。
4)緩存一些很小但是被頻繁訪問的文件。

mongdb有哪些使用的場景

1網(wǎng)站數(shù)據(jù):Mongo非常適合實時的插入次伶,更新與查詢蹋岩,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復制及高度伸縮性。
2緩存:由于性能很高学少,Mongo也適合作為信息基礎設施的緩存層剪个。在系統(tǒng)重啟之后,由Mongo搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載版确。
3大尺寸扣囊,低價值的數(shù)據(jù):使用傳統(tǒng)的關系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前绒疗,很多時候程序員往往會選擇傳統(tǒng)的文件進行存儲侵歇。
4高伸縮性的場景:Mongo非常適合由數(shù)十或數(shù)百臺服務器組成的數(shù)據(jù)庫。Mongo的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持吓蘑。
 5用于對象及JSON數(shù)據(jù)的存儲:Mongo的BSON數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢惕虑。

redis的應用場景

緩存——熱數(shù)據(jù)
計數(shù)器
消息隊列
位操作(大數(shù)據(jù)處理)
分布式鎖與單線程機制
最新列表
排行榜
秒殺
具體: https://www.cnblogs.com/NiceCui/p/7794659.html

mysql連接池

數(shù)據(jù)庫連接池(Connection pooling)是程序啟動時建立足夠的數(shù)據(jù)庫連接,并將這些連接組成一個連接池磨镶,由程序動態(tài)地對池中的連接進行申請溃蔫,使用,釋放琳猫。
個人理解:創(chuàng)建數(shù)據(jù)庫連接是一個很耗時的操作伟叛,也容易對數(shù)據(jù)庫造成安全隱患。所以脐嫂,在程序初始化的時候统刮,集中創(chuàng)建多個數(shù)據(jù)庫連接,并把他們集中管理账千,供程序使用侥蒙,可以保證較快的數(shù)據(jù)庫讀寫速度,還更加安全可靠匀奏。
數(shù)據(jù)庫連接池的機制:
(1)  程序初始化時創(chuàng)建連接池
(2) 使用時向連接池申請可用連接
(3) 使用完畢鞭衩,將連接返還給連接池
(4) 程序退出時,斷開所有連接攒射,并釋放資源

Apache與ngin服務器區(qū)別

nginx相對apache的優(yōu)點

輕量級醋旦,同樣起web 服務恒水,比apache 占用更少的內(nèi)存及資源;
抗并發(fā)会放,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的钉凌,在高并發(fā)下nginx 能保持低資源低消耗高性能
高度模塊化的設計咧最,編寫模塊相對簡單;
社區(qū)活躍,各種高性能模塊出品迅速;

apache相對nginx的優(yōu)點

rewrite ,比nginx 的rewrite 強大;
模塊超多矢沿,基本想到的都可以找到;
少bug 滥搭,nginx 的bug 相對較多;
超穩(wěn)定;

抽象類和接口聯(lián)系與區(qū)別

從語法層面而言,接口和抽象類的區(qū)別
1.抽象類可以提供成員方法的實現(xiàn)細節(jié)捣鲸,而接口中只能存在抽象方法(默認 public abstract)

2.抽象類中的成員變量可以是多種類型瑟匆,而接口中的成員變量必須用public static final(常量)修飾

3.一個類只能繼承一個抽象類(單繼承),但可以實現(xiàn)多個接口(多繼承)栽惶。
4.抽象類中允許含有靜態(tài)代碼塊和靜態(tài)方法愁溜,而接口類不能

從設計層面而言,接口和抽象類的區(qū)別
1.抽象類是對整一個類的屬性外厂,行為等方面進行抽象冕象,而接口則是對行為抽象。汁蝶。

2.抽象類是一個模板式的設計渐扮,當在開發(fā)過程中出現(xiàn)需求更改的情況,只需要更改抽象類而不需要更改它的子類掖棉。接口是一種輻射性設計墓律,當接口的內(nèi)容發(fā)生改變時,需要同時對實現(xiàn)它的子類進行相應的修改幔亥。

3.抽象類可以類比為模板只锻,而接口可以類比為協(xié)議

線程與進程

進程:進程是指某個應用在處理機上的一次執(zhí)行過程,是一個動態(tài)的概念紫谷,是一個活動的實體齐饮。 
線程:線程是進程的一部分,一個進程包含多個線程在運行笤昨。
進程和線程都是一個時間段的描述祖驱,是CPU工作時間段的描述
定義方面: 進程是程序在某個數(shù)據(jù)集合上的一次運行活動;線程是進程中的一個執(zhí)行路徑
角色方面: 在支持線程機制的系統(tǒng)中,進程是系統(tǒng)資源分配的單位,線程是系統(tǒng)調(diào)度的單位
資源共享方面:進程之間不能有共享資源,二線程共享所在進程的地址空間和其他資源,同時線程還有自己的棧和棧指針,程序計算器等寄存器
獨立性方面: 進程有己自?獨立的地址空間,而線程必須依賴進程而存在

索引覆蓋

指如果查詢的列恰好是索引的一部分,那么查詢只需要在索引文件上進行,不需要回到磁盤在找數(shù)據(jù),這樣查詢速度非常快,稱為索引覆蓋

PHP新特性

語言/斷言 : 代碼得不到預計結(jié)果則拋出異常
批量導出成員
標量類型的聲明
返回類的限定
null合并運算符
太空船運算符
closure::call()方法 臨時綁定到對象上
可為空的類型
新增void()函數(shù)
新增list支持鍵名
新增object類型
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞒窒,一起剝皮案震驚了整個濱河市捺僻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌崇裁,老刑警劉巖匕坯,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拔稳,居然都是意外死亡葛峻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門巴比,熙熙樓的掌柜王于貴愁眉苦臉地迎上來术奖,“玉大人礁遵,你說我怎么就攤上這事〔杉牵” “怎么了佣耐?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唧龄。 經(jīng)常有香客問我兼砖,道長,這世上最難降的妖魔是什么既棺? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任掖鱼,我火速辦了婚禮,結(jié)果婚禮上援制,老公的妹妹穿的比我還像新娘戏挡。我一直安慰自己,他們只是感情好晨仑,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布褐墅。 她就那樣靜靜地躺著,像睡著了一般洪己。 火紅的嫁衣襯著肌膚如雪妥凳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天答捕,我揣著相機與錄音逝钥,去河邊找鬼。 笑死拱镐,一個胖子當著我的面吹牛艘款,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沃琅,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼哗咆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了益眉?” 一聲冷哼從身側(cè)響起晌柬,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎郭脂,沒想到半個月后年碘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡展鸡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年屿衅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娱颊。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡傲诵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出上炎,到底是詐尸還是另有隱情唇礁,我是刑警寧澤晦款,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站栓拜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惠昔。R本人自食惡果不足惜幕与,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镇防。 院中可真熱鬧啦鸣,春花似錦、人聲如沸来氧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啦扬。三九已至中狂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扑毡,已是汗流浹背胃榕。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞄摊,地道東北人勋又。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像换帜,于是被迫代替她去往敵國和親赐写。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容