減少數(shù)據(jù)庫的查詢php 數(shù)據(jù)庫減少了數(shù)據(jù)的冗余

thinkphp008. 數(shù)據(jù)庫的數(shù)據(jù)查詢

008. 數(shù)據(jù)庫的數(shù)據(jù)查詢

于2013年成立成都創(chuàng)新互聯(lián)專注于”幫助中小企業(yè)+互聯(lián)網(wǎng)”, 也是目前成都地區(qū)具有實力的互聯(lián)網(wǎng)服務商。團隊致力于為企業(yè)提供--站式網(wǎng)站建設、移動端應用( H5手機營銷、重慶APP開發(fā)、微信開發(fā))、軟件開發(fā)、信息化解決方案等服務。

本節(jié)課我們來了解一下數(shù)據(jù)庫的數(shù)據(jù)查詢方式,單數(shù)據(jù)、數(shù)據(jù)集和其它查詢。

一.單數(shù)據(jù)查詢

1. Db::table()中table必須指定完整數(shù)據(jù)表(包括前綴);

2. 如果希望只查詢一條數(shù)據(jù),可以使用find()方法,需指定where條件;

Db::table('tp_user')-where('id', 27)-find()

3. Db::getLastSql()方法,可以得到最近一條SQL查詢的原生語句;

SELECT * FROM `tp_user` LIMIT 1

4. 沒有查詢到任何值,則返回null;

5. 使用findOrFail()方法同樣可以查詢一條數(shù)據(jù),在沒有數(shù)據(jù)時拋出一個異常;

Db::table('tp_user')-where('id', 1)-findOrFail()

6. 使用findOrEmpty()方法也可以查詢一條數(shù)據(jù),但在沒有數(shù)據(jù)時返回一個空數(shù)組;

7. Db::table('tp_user')-where('id', 1)-findOrEmpty();

二.數(shù)據(jù)集查詢

1. 想要獲取多列數(shù)據(jù),可以使用select()方法;

Db::table('tp_user')-select(); SELECT * FROM `tp_user`

2. 多列數(shù)據(jù)在查詢不到任何數(shù)據(jù)時返回空數(shù)組,使用selectOrFail()拋出異常; Db::table('tp_user')-where('id', 1)-selectOrFail();

3. 在select()方法后再使用toArray()方法,可以將數(shù)據(jù)集對象轉化為數(shù)組;

4. 當在數(shù)據(jù)庫配置文件中設置了前綴,那么我們可以使用name()方法忽略前綴; Db::name('user')-select();

三.其它查詢

1. 通過value()方法,可以查詢指定字段的值(單個),沒有數(shù)據(jù)返回null;

Db::name('user')-where('id', 27)-value('username');

$user = Db::table('tp_user')-select()-toArray(); dump($user);

2. 通過colunm()方法,可以查詢指定列的值(多個),沒有數(shù)據(jù)返回空數(shù)組; Db::name('user')-column('username');

3. 可以指定id作為列值的索引;

4. 如果處理的數(shù)據(jù)量巨大,成百上千那種,一次性讀取有可能會導致內(nèi)存開銷過大;

5. 為了避免內(nèi)存處理太多數(shù)據(jù)出錯,可以使用chunk()方法分批處理數(shù)據(jù);

6. 比如,每次只處理100條,處理完畢后,再讀取100條繼續(xù)處理;

7. 可以利用游標查詢功能,可以大幅度減少海量數(shù)據(jù)的內(nèi)存開銷,它利用了PHP生成器特性。每次查詢只讀一行,然后再讀取時,自動定位到下一行繼續(xù)讀取;

Db::name('user')-column('username', 'id');

Db::table('tp_user')-chunk(3, function($users) { foreach ($users as $user) {

dump($user);

}

echo 1; });

$cursor = Db::table('tp_user')-cursor(); foreach($cursor as $user){

dump($user);

}

php 如何避免在循環(huán)體里查詢數(shù)據(jù)庫,優(yōu)化方法??

辦法就是一次性全查詢出來,然后用PHP程序來處理,優(yōu)點是減少數(shù)據(jù)庫連接查詢次數(shù),提高效率,缺點就是,有可能會多寫一部分php代碼。總的來說php的處理速度要比循環(huán)查詢要效率高。

怎么提高php編程能力?

要想提高你的PHP編程能力,你可以做兩件事情:1)更扎實的掌握基本編程技能;2)更細微、更深入地了解PHP。

以下總結出的幾條指南導航將有助于提高開發(fā)者的PHP編程能力:

一、提高PHP編碼能力的10個細節(jié)

或許你并不能從這些細節(jié)中學到絕對新的東西(例如“如何對變量和函數(shù)做好的命名”,“對代碼做好注釋”,“頻繁測試代碼”),而它們可以讓你鞏固基礎知識。以下幾點解釋了為什么最好的普通編程實踐在PHP應用軟件開發(fā)中尤為重要。

其中10點建議分別為:

1)如何開始良好的開發(fā)風格;

2)合適的變量及函數(shù)命名;

3)注釋代碼;

4)自己動手做大部分的工作;

5)多方涉獵;

6)了解開發(fā)語言的局限性;

7)接受結構上的意見反饋;

8)頻繁的測試代碼;

9)在自己的工程上內(nèi)嵌程序;

10)不要把每一個文件都分一個文件夾

二、寫出更優(yōu)PHP代碼的7條法則

以下7種方法列舉出了PHP開發(fā)商極有可能面對的問題(例如不使用模板,不合適的封裝,在增刪修改時PHP和SQL的混淆使用等等),對于那些很有可能危害到PHP應用程序運行的各種復雜語句,該指南也提供了多種方法來清除(例如對大容量的網(wǎng)頁減少數(shù)據(jù)庫查詢)。

以下是關鍵點:

1)在模板中使用可選擇的PHP語法;

2)封裝所有的東西;

3)使用一個數(shù)據(jù)庫對象;

4)使用增刪查改功能;

5)與調(diào)試為友;

6)重視命名;

7)減少數(shù)據(jù)庫查詢。

當前標題:減少數(shù)據(jù)庫的查詢php 數(shù)據(jù)庫減少了數(shù)據(jù)的冗余
文章來源:http://bm7419.com/article2/ddehioc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設計公司、標簽優(yōu)化、網(wǎng)站設計公司響應式網(wǎng)站、網(wǎng)站內(nèi)鏈網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計