Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 分区性能_Optimization_Mysql - Fatal编程技术网

Optimization 分区性能

Optimization 分区性能,optimization,mysql,Optimization,Mysql,分别测量了关键分区表和普通表的性能。但是我们没有发现分区有任何性能改进。查询被删减 在RHEL4上使用MySQL 5.1.47 表格详情: UserUsage-将为每个日期的用户手机号码和数据使用情况提供条目。手机号码和日期作为PRI密钥 UserProfile-查询prev表并存储每个手机号码的摘要。手机号码PRI键 CREATE TABLE `UserUsage` ( `Msisdn` decimal(20,0) NOT NULL, `Date` date NOT NULL, . . PRI

分别测量了关键分区表和普通表的性能。但是我们没有发现分区有任何性能改进。查询被删减

在RHEL4上使用MySQL 5.1.47

表格详情:

UserUsage
-将为每个日期的用户手机号码和数据使用情况提供条目。手机号码和日期作为PRI密钥

UserProfile
-查询prev表并存储每个手机号码的摘要。手机号码PRI键

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;
在perl程序的第一个表中,通过查询select和order by date更新第二个表,查询为

select * from UserUsage where Msisdn=number order by Date desc limit 7
[用perl处理数据]

update UserProfile values(....) where Msisdn=number
解释select的分区,仅显示在特定分区中扫描的行

分区设计或查询是否有问题,因为分区占用的时间与普通表几乎相同或更多

分区设计或查询是否有问题,因为分区占用的时间与普通表几乎相同或更多


不需要。您可以对一个表进行分区,这样就不必一次备份或重新组织整个表。分区允许您更好地管理大型表。分区并不是性能增强剂。

它取决于数据的大小以及查询如何从分区中受益。例如,如果您在5年内有1000万条记录,并且每年进行分区。如果查询从一年中选择记录,则使用分区比不使用分区执行的速度快得多

表中有多少条记录?