gpt4 book ai didi

Mysql partition by key 只显示1个分区

转载 作者:可可西里 更新时间:2023-11-01 08:25:48 25 4
gpt4 key购买 nike

我有一个场景,比如我有一个包含不同类别的产品表。所以查询将特定于类别。所以我想,如果我可以将每个类别分开作为每个分区,它将提高性能。

DROP TABLE IF EXISTS products;

CREATE TABLE products (
id int(11) AUTO_INCREMENT,
pname varchar(11) default '',
category char(10) default 'general',
PRIMARY KEY thisKey (id,category)
)
PARTITION BY KEY (category)
;

我加载了两个类别的数据。但它只显示一个分区:

mysql> EXPLAIN PARTITIONS SELECT * FROM products\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: products
partitions: p0
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 3
Extra:

谁能帮我解释为什么它没有两个分区,或者我为此要求选择了错误的分区类型?

最佳答案

你错过了分区的数量,在按键分区之后放了类似的东西(对于 5 个分区)

PARTITION BY KEY (category)
PARTITIONS 5;

您是否对分区使用了最佳策略?视情况而定。

您有很多产品数量相似的类别,并且经常添加新类别。 BY KEY 或 BY HASH 是不错的选择,使用此选项产品将随机分布在分区数上

此外,对于这种分区,您无法保证将两个具有不同类别的产品插入不同的分区(哈希键可能相同)

您有固定数量的类别,每个类别中的产品数量差异很大。可能 BY LIST 是你的 friend ,你选择每个分区内的类别。

您的产品数量是否相对较少,或者您需要在查询中混合使用多个类别的产品?可能您不需要分区。

关于Mysql partition by key 只显示1个分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36181664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com