키 분할 테이블과 일반 테이블의 성능을 별도로 측정했습니다. 그러나 파티셔닝으로 성능 향상을 찾을 수 없었습니다. 쿼리가 제거됩니다.MySQL 분할 성능
RHEL에 4
표 세부 사항의 MySQL 5.1.47을 사용 :
UserUsage
을 - 각 날짜에 대한 사용자의 휴대폰 번호와 데이터 사용에 대한 항목이 있습니다. PRI KEY로 모바일 번호와 날짜.
UserProfile
- 검색어는 이전 표와 각 휴대 전화 번호에 대한 요약을 저장합니다. 휴대폰 번호 PRI KEY.
CREATE TABLE `UserUsage` (
`Msisdn` decimal(20,0) NOT NULL,
`Date` date NOT NULL,
.
.
PRIMARY KEY USING BTREE (`Msisdn`,`Date`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PARTITION BY KEY(Msisdn)
PARTITIONS 50;
CREATE TABLE `UserProfile` (
`Msisdn` decimal(20,0) NOT NULL,
.
.
PRIMARY KEY (`Msisdn`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PARTITION BY KEY(Msisdn)
PARTITIONS 50;
번째 테이블이 펄 프로그램의 첫 번째 테이블에서 날짜를 선택하고 주문 조회에 의해 업데이트되는, 쿼리
select * from UserUsage where Msisdn=number order by Date desc limit 7
[펄 프로세스 데이터]이다
update UserProfile values(....) where Msisdn=number
파티션 설명해 select의 경우, 특정 파티션에서만 스캔되는 행을 표시합니다.
파티션 설계가 일반 테이블에 비해 거의 동일하거나 더 많은 시간이 걸리므로 파티션 설계 또는 쿼리에 문제가 있습니까?
테이블에 몇 개의 레코드가 있습니까? – Quassnoi
Mn 레코드 약 1 개 –