1億條數(shù)據(jù)如何分表100張到Mysql數(shù)據(jù)庫(kù)中(PHP)
下面通過(guò)創(chuàng)建100張表來(lái)演示下1億條數(shù)據(jù)的分表過(guò)程,具體請(qǐng)看下文代碼。
當(dāng)數(shù)據(jù)量猛增的時(shí)候,大家都會(huì)選擇庫(kù)表散列等等方式去優(yōu)化數(shù)據(jù)讀寫速度。筆者做了一個(gè)簡(jiǎn)單的嘗試,1億條數(shù)據(jù),分100張表。具體實(shí)現(xiàn)過(guò)程如下:
首先創(chuàng)建100張表:
$i=0;
while($i<=99){
echo "$newNumber \r\n";
$sql="CREATE TABLE `code_".$i."` (
`full_code` char(10) NOT NULL,
`create_time` int(10) unsigned NOT NULL,
PRIMARY KEY (`full_code`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
mysql_query($sql);
$i++;
下面說(shuō)一下我的分表規(guī)則,full_code作為主鍵,我們對(duì)full_code做hash
函數(shù)如下:
$table_name=get_hash_table('code',$full_code);
function get_hash_table($table,$code,$s=100){
$hash = sprintf("%u", crc32($code));
echo $hash;
$hash1 = intval(fmod($hash, $s));
return $table."_".$hash1;
}
這樣插入數(shù)據(jù)前通過(guò)get_hash_table獲取數(shù)據(jù)存放的表名。
最后我們使用merge存儲(chǔ)引擎來(lái)實(shí)現(xiàn)一張完整的code表
CREATE TABLE IF NOT EXISTS `code` ( `full_code` char(10) NOT NULL, `create_time` int(10) unsigned NOT NULL, INDEX(full_code) ) TYPE=MERGE UNION=(code_0,code_1,code_2.......) INSERT_METHOD=LAST ;
這樣我們通過(guò)select * from code就可以得到所有的full_code數(shù)據(jù)了。
以上介紹就是本文的全部?jī)?nèi)容,希望對(duì)大家有所幫助。
- mysql數(shù)據(jù)庫(kù)分表分庫(kù)的策略
- MySQL 5.7雙主同步部分表的實(shí)現(xiàn)過(guò)程詳解
- MyBatis實(shí)現(xiàn)Mysql數(shù)據(jù)庫(kù)分庫(kù)分表操作和總結(jié)(推薦)
- 什么是分表和分區(qū) MySql數(shù)據(jù)庫(kù)分區(qū)和分表方法
- Mysql數(shù)據(jù)庫(kù)性能優(yōu)化三(分表、增量備份、還原)
- MYSQL數(shù)據(jù)庫(kù)數(shù)據(jù)拆分之分庫(kù)分表總結(jié)
- MySQL分表自增ID問(wèn)題的解決方法
- PHP操作mysql數(shù)據(jù)庫(kù)分表的方法
- Mysql數(shù)據(jù)庫(kù)分庫(kù)和分表方式(常用)
- php實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)分表分段備份
- mysql分表和分區(qū)的區(qū)別淺析
- mysql的3種分表方案
- MySQL分表實(shí)現(xiàn)上百萬(wàn)上千萬(wàn)記錄分布存儲(chǔ)的批量查詢?cè)O(shè)計(jì)模式詳解
- MYSQL性能優(yōu)化分享(分庫(kù)分表)
- 使用MySQL的LAST_INSERT_ID來(lái)確定各分表的唯一ID值
- MySQL動(dòng)態(tài)創(chuàng)建表,數(shù)據(jù)分表的存儲(chǔ)過(guò)程
- MySQL 分表優(yōu)化試驗(yàn)代碼
- mysql分表分庫(kù)的應(yīng)用場(chǎng)景和設(shè)計(jì)方式
相關(guān)文章
php+ajax實(shí)現(xiàn)的點(diǎn)擊瀏覽量加1
本文給大家分享的是一段非常實(shí)用的php+ajax實(shí)現(xiàn)的點(diǎn)擊瀏覽量加1的代碼,推薦給大家,有需要的小伙伴可以參考下2015-04-04
PHP數(shù)據(jù)庫(kù)編程之MySQL優(yōu)化策略概述
這篇文章主要介紹了PHP數(shù)據(jù)庫(kù)編程之MySQL優(yōu)化策略,簡(jiǎn)單講述了mysql優(yōu)化的簡(jiǎn)單技巧以及索引優(yōu)化、查詢優(yōu)化、存儲(chǔ)優(yōu)化等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
PHP創(chuàng)建XML的方法示例【基于DOMDocument類及SimpleXMLElement類】
這篇文章主要介紹了PHP創(chuàng)建XML的方法,結(jié)合實(shí)例形式分析了php基于DOMDocument類及SimpleXMLElement類創(chuàng)建xml文件的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09
關(guān)于PHP轉(zhuǎn)換超過(guò)2038年日期出錯(cuò)的問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于PHP轉(zhuǎn)換超過(guò)2038年日期出錯(cuò)問(wèn)題的解決方法,文中給出了詳細(xì)的解決方法,通過(guò)示例代碼讓大家更容易理解和學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。2017-06-06
php從數(shù)組中隨機(jī)選擇若干不重復(fù)元素的方法
這篇文章主要介紹了php從數(shù)組中隨機(jī)選擇若干不重復(fù)元素的方法,涉及php數(shù)組操作的相關(guān)常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03

