gpt4 book ai didi

MySQL 5.5 按 A-Z 分区表

转载 作者:可可西里 更新时间:2023-11-01 06:45:19 27 4
gpt4 key购买 nike

据我所知,从 MySQL 5.5 开始,您现在可以按非整数值(如 varchar)对表进行分区。我有一个表,我在其中对单个 varchar 列执行大量查找,因此出于性能原因我想对其进行分区。

在所有情况下,列的值都是单个字母单词(严格小写 a-z,由验证强制执行)。

我想做的是按存储的每个单词的第一个字母对该表进行分区,因此所有以“a”开头的单词都放在第一个分区中,“b”在第二个分区中,依此类推。

我的直觉是我可能会构造创建/更改表语句以使用 LIKE 语句,但不确定语法。

有人用 MySQL 5.5 做过这样的事吗?

最佳答案

如果你决心按第一个字母去做,我认为 RANGE partitioning会成功的。但是,如果您对按第一个字母进行分区没有绝对要求,LINEAR KEY partitioning可能会更好。

这是我从手册页中提取并修改为使用 varchar 列的示例:

CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE COLUMNS(fname) (
PARTITION p0 VALUES LESS THAN ('h'),
PARTITION p1 VALUES LESS THAN ('m'),
PARTITION p2 VALUES LESS THAN ('t'),
PARTITION p3 VALUES LESS THAN MAXVALUE
);

并运行它:

... Physical database connection acquired for: Feynman
12:33:07 [CREATE - 0 row(s), 0.062 secs] Command processed. No rows were affected
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.062/0.000 sec [0 successful, 1 warnings, 0 errors]

关于MySQL 5.5 按 A-Z 分区表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5407533/

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