我在分区表上创建了一个视图。当我将分区列传递给SELECT语句时,优化程序在通过EXPLAIN语句检查时不会访问该特定分区。MySQL - 通过视图访问分区
有什么办法让视图访问它的表的单个分区?
[编辑]:这是我如何创建两个分区表
CREATE TABLE Partition1 (ID INT,NAME VARCHAR(100),DOB DATE)
PARTITION BY LIST (YEAR(DOB))
(
PARTITION P_2000 VALUES IN (2000),
PARTITION P_2001 VALUES IN (2001)
);
CREATE TABLE NOPART (ID INT,DOB DATE)
PARTITION BY LIST (YEAR(DOB))
(
PARTITION P_2000 VALUES IN (2000),
PARTITION P_2001 VALUES IN (2001)
);
CREATE OR REPLACE VIEW P_VIEW
AS
SELECT ID,DOB
FROM PARTITION1
UNION
SELECT ID,DOB
FROM NOPART;
EXPLAIN
SELECT * FROM P_VIEW
WHERE DOB = '2001-01-01';
认为当我运行的“解释”,它显示优化器将两个分区“p_2000”和“p_2001”。
向我们展示'show create table [partitioned table]'和'show create view [your_view]'的输出结果,那么我们可以告诉更多.. –
请参阅上面更新了问题。 –