thinkphp 資料分表

2021-06-18 04:49:26 字數 843 閱讀 2629

對於大資料量的應用,經常會對資料進行分表,有些情況是可以利用資料庫的分割槽功能,但並不是所有的資料庫或者版本都支援,因此我們可以利用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...