1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据库分表和分库的原理及基于thinkPHP的实现方法

数据库分表和分库的原理及基于thinkPHP的实现方法

时间:2020-12-20 19:13:29

相关推荐

数据库分表和分库的原理及基于thinkPHP的实现方法

数据库|mysql教程

数据库,分表,分库,原理,基于,thinkPHP,实现,方法

数据库-mysql教程

dz论坛最新源码,vscode 访问服务器,ubuntu手机 软件,Tomcat开了没反应,搜狗的爬虫,php 转长整型,咸宁本地seo推广开户,织梦网站怎么做301跳转, 登录模板lzw

为什么要分表,分库: 当我们的数据表数据量,访问量很大,或者是使用频繁的时候,一个数据表已经不能承受如此大的数据访问和存储,所以,为了减轻数据库的负担,加快数据的存储,就需要将一张表分成多张,及将一类数据存入不同的几张表,当分表已经不能满足

jsp源码 实现文下载,谷歌云ubuntu桌面,启动tomcat正常样子图,爬虫 500 足球,php友链代码,外链seo搜行者SEOlzw

icloud网页源码,ubuntu1604白屏,若依前端部署tomcat,家里养爬虫,php视频切片,seo新手入门基础知识收录lzw

为什么要分表,分库:

当我们的数据表数据量,访问量很大,或者是使用频繁的时候,一个数据表已经不能承受如此大的数据访问和存储,所以,为了减轻数据库的负担,加快数据的存储,就需要将一张表分成多张,及将一类数据存入不同的几张表,当分表已经不能满足需求是,我们还可以分库,及用几个数据库存储。

分表会随着需求和功能的不同有不同的实现方法,下面是我做项目中的一个例子:

需求:product,product_price两张表是一对多的关系,及产品和产品每日的价格,一个产品对应几种价格,现在由于产品表数据量很大,每天多有上百万条数据,就以天为单位对表进行分表,以月为单位对数据库进行分库,表的命名为‘product_price-07-20’表格式:前面是原数据库表名,后面是日期(年-月-日).

创建数据库和表的代码如下:

function get_product_price_table(){ $db_info=array(); //这个月 $newmot_time=date("Y-m"); //今天日期 $newday_time=date("Y-m-d"); //本月数据库,今天的表 $db_name = acbooking.$newmot_time; $table_name = "product_price".$newday_time; //昨天的日期 $yesday_time = date("Y-m-d",strtotime("-1 day")); //取出昨天的数据,获取 product_price的最后id,作为新表id的起始值 $last_one_product_price = get_info(product_price_table_id,array( ime=>$yesday_time)); if($last_one_product_price[ able_id_end]>0){ $table_id = $last_one_product_price[ able_id_end]+1; }else{ $table_id = 1; } //创建数据库

$Db_string_line = C(DB_TYPE).://.C(DB_USER).:.C(DB_PWD).@.C(DB_HOST)./.$new_db_database;$DB_P=C(DB_PREFIX);$Model=M($table,$DB_P,$Db_string_line);$db_name=$Model->execute($sql);//通过sql语句配置创建新数据库新标,此处省略了sql语句

//创建数据表

$Db_string_line = C(DB_TYPE).://.C(DB_USER).:.C(DB_PWD).@.C(DB_HOST)./.$new_db_database;$DB_P=C(DB_PREFIX);$Model=M($table,$DB_P,$Db_string_line);$table_name=$Model->execute($sql);

//返回新 数据库,新的表 $db_info[database]=$db_name; $db_info[ able]=$table_name; return $db_info;}

创建出分表后,即可存储当天的所有数据,每天换一张表,执行效率很高。。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。