Rumah >pembangunan bahagian belakang >tutorial php >php操作 mysql数据库简单分表原理-带详细步骤
<?php ini_set("memory_limit","-1"); $db_host='localhost'; $db_user='root'; $db_password='root'; $db_name='test'; $mysqli = new mysqli($db_host, $db_user, $db_password, $db_name); // 新建插入100个表 // for ($i=0; $i < 10; $i++) { // $sql='CREATE TABLE test.article_'.$i.' (`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'; // $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教程有兴趣的朋友有所帮助。