對於大資料量的應用,經常會對資料進行分表,有些情況是可以利用資料庫的分割槽功能,但並不是所有的資料庫或者版本都支援,因此我們可以利用thinkphp內建的資料分表功能來實現。幫助我們更方便的進行資料的分表和讀取操作。
和資料庫分割槽功能不同,內建的資料分表功能需要根據分表規則手動建立相應的資料表。
在需要分表的模型中定義partition屬性即可。protected
$partition = array
('field'
=>
'name'
,// 要分表的字段 通常資料會根據某個欄位的值按照規則進行分表
'type'
=>
'md5'
,// 分表的規則 包括id year mod md5 函式 和首字母
'expr'
=>
'name'
,// 分表輔助表示式 可選 配合不同的分表規則
'num'
=>
'name'
,// 分表的數目 可選 實際分表的數量
);定義好了分表屬性後,我們就可以來進行curd操作了,唯一不同的是,獲取當前的資料表不再使用gettablename方法,而是使用getpartitiontablename方法,而且必須傳入當前的資料。然後根據資料分析應該實際操作哪個資料表。因此,分表的字段值必須存在於傳入的資料中,否則會進行聯合查詢。
事例:testaction
$list=$model->getdao(array("id"=>2))->find();
testmodel
class testmodel extends advmodel
}
Thinkphp 獲取資料表隨機值
有時候我們需要去獲取資料表中隨機條資料用於展示,比如新聞推薦 人員推薦等 1 2 獲取隨機列表 3 param num 獲取的記錄數 4 param array map 篩選條件 5 param string key 主鍵id 6 return mixed7 8public function ran...
10分鐘學會ThinkPHP資料分頁
資料 分頁 可能是web 程式設計裡最常用到的功能之一。thinkphp 實現分頁功能十分簡潔。只需要定義 幾個引數 就能搞定。當然,擴充套件也是十分方便的。讓我們現在就開始thinkphp的分頁實現吧。1 首先,我們得建立乙個用於分頁測試的資料庫 test。sql 如下。複製php 內容到剪貼簿p...
thinkphp 原始碼分 3
php中spl autoload register函式的用法 spl autoload register php 5 5.1.2 spl autoload register 註冊 autoload 函式 說明bool spl autoload register callback autoload f...