PHP核心技術(shù)與技術(shù)實踐---PHP與數(shù)據(jù)庫連接

1、PDO

PDO就是一個接口,可以讓PHP和各種數(shù)據(jù)庫進(jìn)行交互。雖然PDO支持預(yù)處理和數(shù)據(jù)綁定,但是由于查詢效率低,所以筆者不推薦使用

2、數(shù)據(jù)庫的優(yōu)化????

? ? 基本語句優(yōu)化原則????

? ? ? ? 1、盡量避免在列上進(jìn)行運(yùn)算,

? ? ? ? ? ? eg:select * from t where YEAR(d)>=2011? ?優(yōu)化為? select * from t where d >= '2011-01-01';

? ? ? ? 2、使用JOIN連接時,盡量使用小結(jié)果集驅(qū)動大結(jié)果集(根據(jù)實際需要可以調(diào)整)

? ? ? ? 3、注意LIKE的模糊操作的使用,避免%%

? ? ? ? eg:? select * from where name like ‘%de%’? ?優(yōu)化為? select * from where name>='de'? and name <'df'

? ? ? ? 4、列出需要的字段? ?主要是節(jié)約內(nèi)存

? ? ? ? 5、使用批量插入? 節(jié)省交互

? ? ? ? 6、limit的基數(shù)比較大的時候,使用between,在取比較后面的數(shù)據(jù)時候,使用desc把數(shù)據(jù)反向查找,減少對數(shù)據(jù)的掃描

? ? ? ? 7、不用適用rand函數(shù)獲取多條記錄

? ? ? ? 8、避免使用NULL

? ? ? ? ?9、不要使用count(id),而應(yīng)該吃用count(*)?這是為什么

? ? ? ? 10、不要做無所謂的排序操作。

5.2.2????索引與性能分析

? ? MyISAM注重性能,InnoDB注重事物--------------------------這句話是錯的

? ? 1、選擇存儲引擎

? ? ? ? (1)采用MyISAM引擎

? ? ? ? ? ? ? ? R/W > 100 : 1且update相對較少

? ? ? ? ? ? ? ? ?并發(fā)不高,不需要事務(wù)

? ? ? ? ? ? ? ? ? 表數(shù)據(jù)量小

? ? ? ? ? ? ? ? 硬件資源有限

? ? ? ? ?(2)采用InnoDB引擎

? ? ? ? ? ? ? ? R/W比較小,且頻繁更新大字段

? ? ? ? ? ? ? ? ?表數(shù)據(jù)量超過1000萬,并發(fā)高

? ? ? ? ? ? ? ? ? ?安全性和可用性要求高

? ? ? ? ? ?(3)采用Momory引擎

? ? ? ? ? ? ? ? 有足夠的內(nèi)存

? ? ? ? ? ? ? ? ? ?需要定期歸檔的數(shù)據(jù)? ? ?對數(shù)據(jù)一致性要求不高

? ? ? ? 2、MySQl服務(wù)器調(diào)整優(yōu)化措施

? ? ? ? ? ? ? 1)關(guān)閉不必要的二進(jìn)制日志和慢查詢?nèi)罩?/p>

? ? ? ? ? ? ? 2)適度使用Query Cache

? ? ? ? ? ? ? ? 3)增加mysql的最大連接數(shù)

? ? ? ? ? ? 4)從表中刪除大量的數(shù)據(jù)后,使用OPTIMIZE? ?TABLE TableName

? ? 5.3

? ? ? ? 5.3.1? ? 范式與反范式:現(xiàn)在硬盤的存儲條件是允許犧牲物理內(nèi)存來換取查詢時間的。

? ? ? ? 5.3.2? ? 數(shù)據(jù)庫分區(qū):把數(shù)據(jù)表的文件和索引分散存儲在不同的個物理文件中,對于數(shù)據(jù)量超過百萬的數(shù)據(jù),盡量使用數(shù)據(jù)庫分區(qū),可以提高效率的。對于分區(qū),通常使用RANGE類型(在實際開發(fā)中還沒有試過)

? ? ? ? 5.3.3? ? ? ?數(shù)據(jù)庫分表:分表是把一個表分成幾個表,進(jìn)行分表查詢時候,可以用union或者做一個視圖。數(shù)據(jù)庫分表分為:水平分表和垂直分表。(在實際開發(fā)中還沒有試過)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容