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
Mysql 获取错误-';列'的用法不一致;在对表进行分区时_Mysql_Partitioning - Fatal编程技术网

Mysql 获取错误-';列'的用法不一致;在对表进行分区时

Mysql 获取错误-';列'的用法不一致;在对表进行分区时,mysql,partitioning,Mysql,Partitioning,我有一个表ee\u company\u products\u listings\u par,它有许多列,包括cplc\u id和marketplaceID 这是表格的DDL:- ee_company_product_listings_par | CREATE TABLE `ee_company_product_listings_par` ( `id` int(11) NOT NULL AUTO_INCREMENT, `company_product_id` int(11) DEF

我有一个表
ee\u company\u products\u listings\u par
,它有许多列,包括
cplc\u id
marketplaceID

这是表格的DDL:-

ee_company_product_listings_par | CREATE TABLE `ee_company_product_listings_par` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `company_product_id` int(11) DEFAULT NULL,
    `feed_dump_id` int(11) DEFAULT NULL,
    `listing_status_id` int(11) DEFAULT NULL,
    `sku` varchar(500) DEFAULT NULL,
    `mrp` float DEFAULT NULL,
    `selling_price` float DEFAULT NULL,
    `quantity` int(11) NOT NULL,
    `merchant_payout` float DEFAULT NULL,
    `shipping_cost` float DEFAULT NULL,
    `commission` float DEFAULT NULL,
    `commission_service_tax` float DEFAULT NULL,
    `pmt_gateway_charge` float DEFAULT NULL,
    `shipping_local` float DEFAULT NULL,
    `shipping_zonal` float DEFAULT NULL,
    `shipping_national` float DEFAULT NULL,
    `site_uid` varchar(200) DEFAULT '-',
    `listing_ref_number` varchar(200) DEFAULT '-',
    `UID` varchar(50) DEFAULT NULL,
    `marketplaceID` int(11) NOT NULL,
    `confirmed` tinyint(1) NOT NULL DEFAULT '0',
    `inventory_live` tinyint(2) NOT NULL DEFAULT '1',
    `update_cpl_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `sku_corrected` tinyint(1) DEFAULT '0',
    `cplisting_entry_time` timestamp NULL DEFAULT NULL,
    `weight` float(10,2) DEFAULT NULL,
    `length` float(10,2) DEFAULT NULL,
    `height` float(10,2) DEFAULT NULL,
    `width` float(10,2) DEFAULT NULL,
    `cplc_id` int(11) NOT NULL DEFAULT '0',
    `mp_cat_id` int(11) DEFAULT NULL,
    `process_id` varchar(10) DEFAULT NULL,
    `host_ip` varchar(20) DEFAULT NULL,
    `color` varchar(100) DEFAULT NULL,
    `size` varchar(100) DEFAULT NULL,
    `identifier` varchar(200) DEFAULT NULL,
    `mp_brand_id` int(11) DEFAULT NULL,
    PRIMARY KEY (`id`,`cplc_id`,`marketplaceID`)
) ENGINE=InnoDB AUTO_INCREMENT=21474383 DEFAULT CHARSET=latin1 |
cplc\u id
的范围为0-10000
marketplaceID
的范围为0-100

我想在这两列的基础上创建范围分区

这是我正在运行的查询:-

alter table ee_company_product_listings_par partition by range columns (cplc_id, marketplaceID) (
PARTITION p500_5 VALUES LESS THAN (500, 5),
PARTITION p500_10 VALUES LESS THAN (500,10),
PARTITION p1000_5 VALUES LESS THAN (1000,5),
PARTITION p1000_10 VALUES LESS THAN (1000,10),
partition pmax values less than MAXVALUE
);
这就是我得到的错误:-

ERROR 1064 (42000): Inconsistency in usage of column lists for partitioning near 'MAXVALUE
)' at line 4

是否有人可以帮助查找查询中的问题。搜索了整个互联网,但没有找到任何解决方案。可能会有一些愚蠢的错误,因为我对分区一无所知。任何帮助都将不胜感激。

语法错误;使用以下命令:

VALUES LESS THAN (MAXVALUE, MAXVALUE)

您希望从
分区中获得什么?
选择了什么
会有好处?

谢谢Rick。基本上,行的数量已经超过1亿,选择完全基于这两列(cplc_id,marketplaceID),因此思想分区将显著提高与表相关的所有操作的效率。你有什么建议?
WHERE
子句看起来像什么?如果只是
其中cplc\u id=constant,marketplaceID=constant
,那么
索引(cplc\u id,marketplaceID)
比分区更好。如果其他的
在那里,让我们看看。是的..这可以做到,但很多时候我们必须根据这两列删除。因此,在这种情况下,我认为分区的性能会更好。如果没有分区,写操作也会花费很多时间,因为在这样一个大的表上,索引的大小会非常大,但是在分区之后,索引将只在每个分区上,因此写操作也会更加高效。如果我有什么地方错了,请纠正我。请给我们看一个典型的
删除
。你支持划分的论点与我给出的样本不符。而且。。。更新一个大索引只比更新一个小索引稍微慢一点——读修改写单个块。(区别在于定位和缓存这一块。)谢谢你的赞扬。我的博客是针对这样的论坛用户的。他们阅读了成千上万的问题,看到了模式。新手没有索引的线索。中级新手认为分区是灵丹妙药。在那之后,图案就更微妙了。