У меня проблема с производительностью базы данных, поскольку в построенном запросе слишком много объединений.У меня есть инициатива по созданию табличного представления, чтобы процесс стал быстрее, чем раньше, код выглядит так:
CREATE VIEW dashboard_sales AS (
SELECT o.order_id,
o.order_date,
o.order_status,
o.order_gender,
o.order_birth_date,
op.op_status,
op.op_payment_code,
oi.oi_qty,
op.op_total,
oi.item_id,
i.item_name,
dc.dc_id,
dc.dc_name,
dc.dc_sales,
c.id_city,
c.name_city,
pc.pc_caption
FROM `order` o
LEFT JOIN order_items oi
ON o.order_id = oi.order_id
LEFT JOIN order_payment op
ON o.order_id = op.order_id
LEFT JOIN item i
ON oi.item_id = i.item_id
LEFT JOIN distribution_channel dc
ON o.dc_id = dc.dc_id
LEFT JOIN city c
ON o.order_city = c.id_city
LEFT JOIN payment_channel pc
ON op.op_payment_code = pc.pc_code
);
, но поскольку записей много, и я ищу решение, которое заключается в добавлении индексациикак показано ниже,
CREATE INDEX MyIndex
ON dashboard_sales(op_total, order_date)
, но я получаю некоторую ошибку, подобную этой,
#1347 - 'matoa_admin.dashboard_sales' is not BASE TABLE
, как решить эту проблему?и это может сделать индексацию в табличном представлении?