>  기사  >  백엔드 개발  >  PHP 작업 mysql 데이터베이스 간단한 테이블 분할 원리 - 자세한 단계 포함

PHP 작업 mysql 데이터베이스 간단한 테이블 분할 원리 - 자세한 단계 포함

WBOY
WBOY원래의
2016-08-08 09:24:37926검색
<?php
ini_set("memory_limit","-1");
$db_host=&#39;localhost&#39;;
$db_user=&#39;root&#39;;
$db_password=&#39;root&#39;;
$db_name=&#39;test&#39;;
$mysqli = new mysqli($db_host, $db_user, $db_password, $db_name); 
// 新建插入100个表
// for ($i=0; $i < 10; $i++) { 
// 	$sql=&#39;CREATE TABLE test.article_&#39;.$i.&#39; (`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&#39;;

//  $re=$result=$mysqli->query("$sql");
// }

//新建一个id存储表,其实也没必要非得叫id,如果业务量大按年月日也行, 按增量也行。
// CREATE TABLE `test`.`create_id` (`id` BIGINT( 20 ) NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE = MYISAM;

//新建一个总表 ,有没有必要自己体会(后期用到分页,统计的时候直接调用就行,查询的速度还是很快的,如果不想要这个表,那就用的时候再用union查询:把所有表名放入数组中,然后foreach 在拼装sql .union 去。所以还不如开始的时候做好呢)
// CREATE TABLE `article_total` (
//   `id` bigint(20) NOT NULL,
//   `subject` varchar(200) NOT NULL,
//   `content` text NOT NULL,
//   PRIMARY KEY (`id`)
// ) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 UNION=(`article_0`,`article_1`,`article_2`,`article_3`);
// Query OK, 0 rows affected


function get_AI_ID(){
	global $mysqli;
	
	$mysqli->query('insert into create_id (id) values("")');
<span style="white-space:pre">	</span>// 返回插入id值
	return mysqli_insert_id($mysqli);
}

function new_article(){
	global $mysqli;
	echo $id=get_AI_ID();
	echo $table_name=get_table_name($id);
	$sql = "insert into {$table_name} (id,subject,content) values('{$id}','title','content')";
	echo $sql;
	$mysqli->query($sql);

}

function get_table_name($id){
	return 'article_'.intval($id)%10;
}

new_article();

위 내용은 PHP 작업 MySQL 데이터베이스의 간단한 테이블 분할 원리를 내용의 측면을 포함한 세부 단계와 함께 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.