php判断一个亿数据 php判断一个亿数据是否正确

1亿条数据如何分表100张到Mysql数据库中(PHP)

下面通过创建100张表来演示下1亿条数据的分表过程,具体请看下文代码。

创新互联公司主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销推广、网站程序开发、HTML5响应式成都网站建设手机网站开发、微商城、网站托管及成都网站维护公司、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都玻璃钢坐凳行业客户提供了网站改版服务。

当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度。笔者做了一个简单的尝试,1亿条数据,分100张表。具体实现过程如下:

首先创建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++;

下面说一下我的分表规则,full_code作为主键,我们对full_code做hash

函数如下:

$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;

}

这样插入数据前通过get_hash_table获取数据存放的表名。

最后我们使用merge存储引擎来实现一张完整的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

;

这样我们通过select

*

from

code就可以得到所有的full_code数据了。

以上介绍就是本文的全部内容,希望对大家有所帮助。

PHP 10000等于1万 100000=10万 100000000等于1亿

function test_value($num){

$new_value = '';

$test_arr  = array('100000000'='亿','10000'='万');//从大到小排列你想要的组合

$statu = true;

foreach ($test_arr as $key = $value) {

if($num=$key){

$new_value=intval($num/$key).$value;

$statu = false;

break;

}

}

if($statu){

$new_value=$num;

}

return $new_value;

}

//像下面这样调用函数即可

echo test_value(15123);  //调用函数

echo 'br /';

echo test_value(112256);  //调用函数

echo 'br /';

echo test_value(100000000);  //调用函数

echo 'br /';

echo test_value(100000001);  //调用函数

// 输出结果

// 1万

// 11万

// 1亿

// 1亿

php+mysql可以处理亿级的数据吗

理论上是可以的,但效率上就有问题了,这么大量的数据一般不会放一张表里面,都会考虑分表,然后考虑索引、数据库主从、服务器配置等,提高查询效率php+mysql可以处理亿级的数据吗


分享文章:php判断一个亿数据 php判断一个亿数据是否正确
标题来源:http://scyanting.com/article/dooicsh.html