Gere e otimize consultas MySQL automaticamente. Projetado especificamente para aproveitar todas as funcionalidades do MySQL. Saiba mais sobre IA para Consultas SQL e descubra como simplificar o uso de bancos de dados com inteligência artificial.
Funcionalidades MySQL
1. Otimização de Índices
ALTER TABLE produtos ADD INDEX idx_categoria_preco (categoria_id, preco);
ALTER TABLE vendas ADD INDEX idx_data_cliente (data_venda, cliente_id);
EXPLAIN ANALYZE
SELECT
p.nome_produto,
c.nome_categoria,
COUNT(*) as total_vendas
FROM produtos p
USE INDEX (idx_categoria_preco)
JOIN categorias c ON p.categoria_id = c.id
JOIN vendas v USE INDEX (idx_data_cliente)
ON p.id = v.produto_id
WHERE v.data_venda >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
GROUP BY p.id, p.nome_produto,
2. Funções MySQL Específicas
SELECT
DATE_FORMAT(data_venda, '%Y-%m') as mes,
GROUP_CONCAT(
DISTINCT produto_id
ORDER BY valor DESC
SEPARATOR ','
) as produtos_vendidos,
SUM(valor) as total_vendas
FROM vendas
GROUP BY mes WITH ROLLUP
3. Otimização de Performance
ALTER TABLE vendas
PARTITION BY RANGE (YEAR(data_venda)) (
PARTITION p2022 VALUES LESS THAN (2023),
PARTITION p2023 VALUES LESS THAN (2024),
PARTITION p2024 VALUES LESS THAN MAXVALUE
);
SELECT
c.nome_cliente,
(
SELECT COUNT(*)
FROM vendas v
WHERE v.cliente_id = c.id
AND v.data_venda >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
) as compras_recentes
FROM clientes c
HAVING compras_recentes > 0
ORDER BY compras_recentes DESC
Exemplos Práticos
1. Análise de Vendas
WITH vendas_mensais AS (
SELECT
DATE_FORMAT(data_venda, '%Y-%m') as mes,
SUM(valor) as total_vendas,
COUNT(DISTINCT cliente_id) as clientes_unicos
FROM vendas
WHERE data_venda >= DATE_SUB(CURRENT_DATE, INTERVAL 12 MONTH)
GROUP BY mes
)
SELECT
mes,
total_vendas,
clientes_unicos,
ROUND((total_vendas / clientes_unicos), 2) as valor_por_cliente,
LAG(total_vendas) OVER (ORDER BY mes) as vendas_mes_anterior,
ROUND(
((total_vendas - LAG(total_vendas) OVER (ORDER BY mes)) /
LAG(total_vendas) OVER (ORDER BY mes) * 100),
2
) as crescimento_percentual
FROM vendas_mensais
ORDER BY mes DESC
2. Gestão de Estoque MySQL
CREATE VIEW inventario_critico AS
SELECT
p.nome_produto,
p.sku,
p.estoque_atual,
p.ponto_reposicao,
COALESCE(vm.media_vendas_mes, 0) as venda_mensal,
ROUND(
p.estoque_atual / NULLIF(vm.media_vendas_mes, 0),
1
) as meses_estoque
FROM produtos p
LEFT JOIN (
SELECT
produto_id,
AVG(quantidade) as media_vendas_mes
FROM vendas
WHERE data_venda >= DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH)
GROUP BY produto_id
) vm ON p.id = vm.produto_id
WHERE
p.estoque_atual <= p.ponto_reposicao
OR p.estoque_atual <= vm.media_vendas_mes * 2
Funcionalidades Avançadas MySQL
1. Procedures
DELIMITER //
CREATE PROCEDURE atualizar_estatisticas_produto(IN produto_id INT)
BEGIN
DECLARE total_vendas INT;
DECLARE valor_medio DECIMAL(10,2);
SELECT
COUNT(*),
AVG(valor)
INTO total_vendas, valor_medio
FROM vendas
WHERE produto_id = produto_id
AND data_venda >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH);
UPDATE produtos
SET
vendas_mes = total_vendas,
preco_medio = valor_medio,
ultima_atualizacao = NOW()
WHERE id = produto_id;
END
2. Triggers para Auditoria
DELIMITER //
CREATE TRIGGER auditoria_vendas_insert
AFTER INSERT ON vendas
FOR EACH ROW
BEGIN
INSERT INTO log_vendas (
venda_id,
produto_id,
quantidade,
valor,
data_registro,
tipo_operacao
)
VALUES (
NEW.id,
NEW.produto_id,
NEW.quantidade,
NEW.valor,
NOW(),
'INSERT'
);
END
Dicas de Otimização MySQL
Índices Eficientes
Criar índices compostos
Evitar índices redundantes
Monitorar uso de índices
Configuração do Buffer
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
Otimização de Consultas
EXPLAIN FORMAT=JSON
SELECT ... FROM ... WHERE ...;
OPTIMIZE TABLE
Saiba mais sobre Uso de IA para Consultas SQL Eficientes e Sem Erros e como melhorar a produtividade em seus projetos.
Perguntas Frequentes
P: A IA otimiza automaticamente as consultas para MySQL?
R: Sim, ela gera consultas otimizadas especificamente para MySQL.
P: Posso usar funcionalidades específicas do MySQL?
R: Sim, todas as funções específicas do MySQL são suportadas.