我对分区很新,似乎无法找到明确的答案。我有一个相当大的车辆表,我经常使用。它有大约300万条记录(现在),包括vin,品牌,型号,年份,颜色等。
我通过VIN访问此表以查找车辆信息。当我这样做时,显然查询需要一段时间,即使VIN已编入索引。我考虑分区,因为我想更频繁地使用这个表。此外,由于我通过VIN访问,并且有一个VIN编号的逻辑顺序,我打算在VIN上进行分区。但据我所知,你无法在varchar上进行分区。所以我想知道如何处理这个问题。
我考虑过将VIN拆分为单独的索引列,在密钥上创建主键和分区?例如,如果VIN 1HGCM82633A004352 并且此背后存在逻辑(http://www.carfax.com/vin_decoding.cfx)
CREATE TABLE cars(
id bigint,
vin varchar(20),
vin_country int, -- for the first digit
vin_manuf_type varchar(2), -- manufacturing and type
vin_the_rest varchar(14) -- the rest, for demo purposes I didnt split it all
);
ALTER TABLE cars PARTITION BY HASH(id) PARTITIONS 10;
这看起来像是一个逻辑分区吗?或者分裂VIN和分区计数器是否有效?
非常感谢任何见解。