1억 개의 데이터로 100개의 MySQL 데이터베이스 테이블을 PHP로 구현

PHP中文网
풀어 주다: 2016-08-08 09:19:44
원래의
1133명이 탐색했습니다.

데이터 양이 급격히 증가하면 모든 사람은 데이터 읽기 및 쓰기 속도를 최적화하기 위해 데이터베이스 테이블 해싱 및 기타 방법을 선택하게 됩니다. 저자는 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가 기본 키로 사용되는 테이블 분할 규칙에 대해 이야기해 보겠습니다.

함수는 다음과 같습니다.

$table_name=get_hash_table(&#39;code&#39;,$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을 통해 데이터가 저장된 테이블 이름을 알아냅니다.

마지막으로 병합 스토리지 엔진을 사용하여 완전한 코드 테이블을 구현합니다

1 CREATE TABLE IF NOT EXISTS `code` (  
2 `full_code` char(10) NOT NULL,3 `create_time` int(10) unsigned NOT NULL,4 INDEX(full_code)  
5 ) TYPE=MERGE UNION=(code_0,code_1,code_2.......) INSERT_METHOD=LAST ;
로그인 후 복사

이런 방식으로 코드에서 *를 선택하면 모든 full_code 데이터를 얻을 수 있습니다.


위 내용은 1억 개의 데이터를 가지고 100개의 MySQL 데이터베이스 테이블을 PHP로 구현한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.kr)를 참고해주세요. .php.cn) !


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!