国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
PHP操作mysql數(shù)據(jù)庫(kù)分表的方法,phpmysql數(shù)據(jù)庫(kù)
首頁(yè) php教程 php手冊(cè) PHP操作mysql數(shù)據(jù)庫(kù)分表的方法,phpmysql數(shù)據(jù)庫(kù)

PHP操作mysql數(shù)據(jù)庫(kù)分表的方法,phpmysql數(shù)據(jù)庫(kù)

Jul 06, 2016 pm 02:25 PM
mysql mysql資料庫(kù) php 分錶

PHP操作mysql數(shù)據(jù)庫(kù)分表的方法,phpmysql數(shù)據(jù)庫(kù)

一般來(lái)說,當(dāng)我們的數(shù)據(jù)庫(kù)的數(shù)據(jù)超過了100w記錄的時(shí)候就應(yīng)該考慮分表或者分區(qū)了,這次我來(lái)詳細(xì)說說分表的一些方法。首先,我們需要想好到底分多少個(gè) 表,前提當(dāng)然是滿足應(yīng)用。這里我使用了一個(gè)比較簡(jiǎn)單的分表方法,就是根據(jù)自增id的尾數(shù)來(lái)分,也就是說分0-9一共10個(gè)表,其取值也很好做,就是對(duì)10 進(jìn)行取模。另外,還可以根據(jù)某一字段的md5值取其中幾位進(jìn)行分表,這樣的話,可以分的表就很多了。

好了,先來(lái)創(chuàng)建表吧,代碼如下:

CREATE TABLE `ttlsa_com`.`article_0` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_1` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_2` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_3` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_4` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_5` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_6` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_7` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_8` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE TABLE `ttlsa_com`.`article_9` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci

好了10個(gè)表創(chuàng)建完畢了,需要注意的是,這里的id不能設(shè)為自增,而且所有的表結(jié)構(gòu)必須一致,包括結(jié)構(gòu),類型,長(zhǎng)度,字段的順序都必須一致那么對(duì)于這個(gè)id如何取得呢?后面我會(huì)詳細(xì)說明。現(xiàn)在,我們需要一個(gè)合并表,用于查詢,創(chuàng)建合并表的代碼如下:

CREATE TABLE `ttlsa_com`.`article` ( 
`id` BIGINT( 20 ) NOT NULL ,
`subject` VARCHAR( 200 ) NOT NULL ,
`content` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=0 union =(`article_0`,`article_1`,`article_2`,`article_3`,`article_4`,`article_5`,`article_6`,`article_7`,`article_8`,`article_9`);

注意,合并表也必須和前面的表有相同的結(jié)構(gòu),類型,長(zhǎng)度,包括字段的順序都必須一致這里的INSERT_METHOD=0表示不允許對(duì)本表進(jìn)行 insert操作。好了,當(dāng)需要查詢的時(shí)候,我們可以只對(duì)article這個(gè)表進(jìn)行操作就可以了,也就是說這個(gè)表僅僅只能進(jìn)行select操作,那么對(duì)于 插入也就是insert操作應(yīng)該如何來(lái)搞呢,首先就是獲取唯一的id了,這里就還需要一個(gè)表來(lái)專門創(chuàng)建id,代碼如下:

CREATE TABLE `ttlsa_com`.`create_id` ( 
`id` BIGINT( 20 ) NOT NULL AUTO_INCREMENT PRIMARY KEY 
) ENGINE = MYISAM

也就是說,當(dāng)我們需要插入數(shù)據(jù)的時(shí)候,必須由這個(gè)表來(lái)產(chǎn)生id值,我的php代碼的方法如下:

<&#63;php 
function get_AI_ID() { 
$sql = "insert into create_id (id) values('')"; 
$this->db->query($sql); 
return $this->db->insertID(); 
} 
&#63;>

好了,現(xiàn)在假設(shè)我們要插入一條數(shù)據(jù)了,應(yīng)該怎么操作呢?還是繼續(xù)看代碼吧

<&#63;php 
function new_Article() { 
$id = $this->get_AI_ID(); 
$table_name = $this->get_Table_Name($id); 
$sql = "insert into {$table_name} (id,subject,content) values('{$id}','測(cè)試標(biāo)題','測(cè)試內(nèi)容')"; 
$this->db->query($sql); 
} 
/** 
* 用于根據(jù)id獲取表名 
*/ 
function get_Table_Name($id) { 
return 'article_'.intval($id)%10; 
} 
&#63;>

其實(shí)很簡(jiǎn)單的,對(duì)吧,就是先獲取id,然后根據(jù)id獲取應(yīng)該插入到哪個(gè)表,然后就很簡(jiǎn)單了。
對(duì)于update的操作我想應(yīng)該不需要再說了吧,無(wú)非是有了id,然后獲取表名,然后進(jìn)行update操作就好了。
對(duì)于用戶表,建個(gè)最少列最基本信息的用戶名,比如用戶ID,用戶名,密碼。用戶的其他信息分布到以用戶ID分表的表上。
怎么分表如何分表以業(yè)務(wù)需求而定。

你可以根據(jù)id分,也可以根據(jù)年,月,地區(qū)來(lái)分。要按照業(yè)務(wù)需求。

以上所述是小編給大家介紹的PHP操作mysql數(shù)據(jù)庫(kù)分表的方法,希望對(duì)大家有所幫助,如果大家有不同的見解歡迎提出,共同學(xué)習(xí)進(jìn)步!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

在C中使用std :: Chrono 在C中使用std :: Chrono Jul 15, 2025 am 01:30 AM

std::chrono在C 中用於處理時(shí)間,包括獲取當(dāng)前時(shí)間、測(cè)量執(zhí)行時(shí)間、操作時(shí)間點(diǎn)與持續(xù)時(shí)間及格式化解析時(shí)間。 1.獲取當(dāng)前時(shí)間使用std::chrono::system_clock::now(),可轉(zhuǎn)換為可讀字符串但係統(tǒng)時(shí)鐘可能不單調(diào);2.測(cè)量執(zhí)行時(shí)間應(yīng)使用std::chrono::steady_clock以確保單調(diào)性,並通過duration_cast轉(zhuǎn)換為毫秒、秒等單位;3.時(shí)間點(diǎn)(time_point)和持續(xù)時(shí)間(duration)可相互操作,但需注意單位兼容性和時(shí)鐘紀(jì)元(epoch)

PHP如何處理環(huán)境變量? PHP如何處理環(huán)境變量? Jul 14, 2025 am 03:01 AM

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。 $ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach

為什麼我們?cè)u(píng)論:PHP指南 為什麼我們?cè)u(píng)論:PHP指南 Jul 15, 2025 am 02:48 AM

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

mysql公共表表達(dá)式(CTE)示例 mysql公共表表達(dá)式(CTE)示例 Jul 14, 2025 am 02:28 AM

CTE是MySQL中用於簡(jiǎn)化複雜查詢的臨時(shí)結(jié)果集。它在當(dāng)前查詢中可多次引用,提升代碼可讀性和維護(hù)性。例如,在orders表中查找每個(gè)用戶的最新訂單時(shí),可通過CTE先獲取每個(gè)用戶的最新訂單日期,再與原表關(guān)聯(lián)獲取完整記錄。相比子查詢,CTE結(jié)構(gòu)更清晰,邏輯更易調(diào)試。使用技巧包括明確別名、串聯(lián)多個(gè)CTE以及利用遞歸CTE處理樹形數(shù)據(jù)。掌握CTE能使SQL更優(yōu)雅高效。

為MySQL表中的列選擇適當(dāng)?shù)臄?shù)據(jù)類型 為MySQL表中的列選擇適當(dāng)?shù)臄?shù)據(jù)類型 Jul 15, 2025 am 02:25 AM

insetTingUpmysqltables,選擇theStherightDatatatPesisionCrucialForeffifeffifeffifeffificeFifeffifeFrifeFifeScalible

PHP標(biāo)頭重定向不起作用 PHP標(biāo)頭重定向不起作用 Jul 14, 2025 am 01:59 AM

header函數(shù)跳轉(zhuǎn)失敗原因及解決方法:1.header前已有輸出,需檢查並移除所有前置輸出或使用ob_start()緩衝;2.未加exit導(dǎo)致後續(xù)代碼干擾,應(yīng)在跳轉(zhuǎn)後立即添加exit或die;3.路徑錯(cuò)誤應(yīng)使用絕對(duì)路徑或動(dòng)態(tài)拼接確保正確;4.服務(wù)器配置或緩存干擾可嘗試清除緩存或更換環(huán)境測(cè)試。

PHP準(zhǔn)備的聲明獲得結(jié)果 PHP準(zhǔn)備的聲明獲得結(jié)果 Jul 14, 2025 am 02:12 AM

在PHP中使用預(yù)處理語(yǔ)句獲取數(shù)據(jù)庫(kù)查詢結(jié)果的方法因擴(kuò)展而異,1.使用mysqli時(shí)可通過get_result()配合fetch_assoc()獲取關(guān)聯(lián)數(shù)組,適用於現(xiàn)代環(huán)境;2.也可使用bind_result()綁定變量,適合字段少、結(jié)構(gòu)固定的情況,兼容性好但字段多時(shí)較繁瑣;3.使用PDO時(shí)通過fetch(PDO::FETCH_ASSOC)獲取關(guān)聯(lián)數(shù)組,或用fetchAll()一次性獲取所有數(shù)據(jù),接口統(tǒng)一且錯(cuò)誤處理更清晰;此外需注意參數(shù)類型匹配、執(zhí)行execute()、及時(shí)釋放資源及開啟錯(cuò)誤報(bào)告以

php準(zhǔn)備的語(yǔ)句與條款 php準(zhǔn)備的語(yǔ)句與條款 Jul 14, 2025 am 02:56 AM

使用PHP預(yù)處理語(yǔ)句執(zhí)行帶有IN子句的查詢時(shí),1.需根據(jù)數(shù)組長(zhǎng)度動(dòng)態(tài)生成佔(zhàn)位符;2.使用PDO時(shí)可直接傳入數(shù)組,用array_values確保索引連續(xù);3.使用mysqli時(shí)需構(gòu)造類型字符串並綁定參數(shù),注意展開數(shù)組的方式及版本兼容性;4.避免拼接SQL、處理空數(shù)組和確保數(shù)據(jù)類型匹配。具體做法是:先用implode與array_fill生成佔(zhàn)位符,再依擴(kuò)展特性綁定參數(shù),從而安全執(zhí)行IN查詢。

See all articles