Novos Recursos Planejados Para a Versão em um Futuro Próximo
Novas funcionalidade
- Comando como do Oracle
CONNECT BY PRIOR ...para estruturas de busca tipo árvore (hierárquica) - Adicionar todos os tipos que faltam do SQL-92 e ODBC 3.0.
- Adicionar
SUM(DISTINCT). INSERT SQL_CONCURRENTemysqld --concurrent-insertpara fazer uma inserção concorrente no fim do arquivo se o arquivo tiver lock de leitura.- Permitir a atualização de variáveis nas instruções
UPDATE. Por exemplo:UPDATE TABLE foo SET @a=a+b,a=@a, b=@a+c. - Alterar quando as variáveis de usuários são atualizadas e assim pode se usá-las com
GROUP BY, como no exemplo a seguir:SELECT id, @a:=COUNT(*), SUM(sum_col)/@a FROM nome_tabela GROUP BY id. - Adicionar a opção
IMAGEaLOAD DATA INFILEpara não atualizar camposTIMESTAMPeAUTO_INCREMENT. - Adicionar a sintaxe
LOAD DATA INFILE ... UPDATEque funciona assim:- Para tabelas com chaves primárias, se o registro de entrada contém um valor de chave primária, linhas existentes correspondendo às chaves primárias são atualizadas para o restante das colunas de entrada. No entanto, colunas
faltosasna inserção dos registros de entradas não são alteradas. - Para tabelas com chaves primárias, se um registro de entrada não contém um valor de chave primária ou estrá faltando alguma parte da chave, o registro é tratado como um
LOAD DATA INFILE ... REPLACE INTO.
- Para tabelas com chaves primárias, se o registro de entrada contém um valor de chave primária, linhas existentes correspondendo às chaves primárias são atualizadas para o restante das colunas de entrada. No entanto, colunas
- Fazer com que
LOAD DATA INFILEentenda a sintaxe do tipo:LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name TEXT_FIELDS (text_field1, text_field2, text_field3) SET table_field1=CONCAT(text_field1, text_field2), table_field3=23 IGNORE text_field3
Isto pode ser usado para saltar colunas extras no arquivo texto, ou atualizar colunas baseadas nas expressões dos dados lidos.
- Novas funções para tyrabalhar com tipos de colunas
SET:ADD_TO_SET(valor,conjunto)REMOVE_FROM_SET(valor,conjunto)
- Se você abortar o
MariaDBno meio de uma consulta, você deve abrir outra conexão e matar a consulta antiga em execução. Alternativamente, deve ser feita um tentativa de detecção deste problema no servidor. - Adicione um interface do mecanismo de armazenamento para informações da tabela assim que você puder usá-la como uma tabela de sistema. Isto seria um pouco mais lento se você pedisse informações sobre todas as tabelas, mas muito flexível.
SHOW INFO FROM tbl_namepara informações básicas das tabelas deve ser implementado. - Permite
SELECT a FROM crash_me LEFT JOIN crash_me2 USING (a); neste caso é considerado queavem da tabelacrash_me. - Opções
DELETEeREPLACEpara a instruçãoUPDATE(isto deletará registros quando se tiver um erro de chave duplicada durante a atualização). - Altera o formato de
DATETIMEpara armazenar frações de segundo. - Possibilitar o uso da nova biblioteca regexp GNU em vez da atual (a biblioteca GNU deve ser muito mais rápida que a antiga).
- Compatibilidade com os padrões, portabilidade e migração
- Não adicionar valores
DEFAULTautomáticos as colunas. Enviar um erro ao usar umINSERTque não contenha uma coluna que não tenha umDEFAULT. - Adicionar as funções de agrupamento
ANY(),EVERY()eSOME(). No padrão SQL isto só funciona em colunas booleanas, mas podemos extendê-las para funcionar em qualquer coluna/expressão tratando valores 0 como FALSE e valores diferentes de 0 como TRUE. - Corrigir para que o tipo de
MAX(coluna)seja o mesmo do tipo da coluna:mysql>
CREATE TABLE t1 (a DATE);mysql>INSERT INTO t1 VALUES (NOW());mysql>CREATE TABLE t2 SELECT MAX(a) FROM t1;mysql>SHOW COLUMNS FROM t2;
- Não adicionar valores
- Aumento de velocidade
- Não permitir mais que um número definido de threads façam a recuperação do MyISAM ao mesmo tempo.
- Alterar
INSERT ... SELECTpara usar inserções concorrentes opcionalmente. - Adicionar uma opção para descarregar paginas de chaves para tabelas com delayed keys se elas não forem usados por um tempo.
- Permitir joins em partes de chaves (otimização).
- Adicionar simulação de
pread()/pwrite()no Windows para permitir inserções concorrentes. - Um analizador de arquivos de log que possam analizar informações sobre quais tabelas são usadas com mais frequência, a frequência com que joins multi-tables são executados, etc. Isto deve ajudar os usuários a identificar áreas ou projetos de tabelas que podiam ser otimizados para executar consultas muito mais eficientes.
- Internacionalização
- Aprimoramentos de usabilidade
- Retorna os tipos dos campos originais ao se fazer
SELECT MIN(coluna) ... GROUP BY. - Possibilita especificar
long_query_timecom uma granularidade em microsegundos. - Ligue o código
myisampackno servidor assim ele poderá realizar operaçõesPACKeCOMPRESS. - Adicionar uma cache de chaves temporária durante
INSERT/DELETE/UPDATEpara podermos fazer um recuperação se o índice ficar cheio. - Se você realizar um
ALTER TABLEem uma tabela que é ligada simbolicamente a outro disco, crie tabelas tenporárias neste disco. - Implementar um tipo
DATE/DATETIMEque trate as informações de fusos horários de forma apropriada e assim lidar com datas em diferentes fusos horários será mais fácil. - Corrigir o configure para se poder compilar todas as bibliotecas (como no
MyISAM) sem threads. - Permitir variáveis SQL em
LIMIT, como emLIMIT @a,@b. - Saída automática do
MariaDBpara um navegador web. LOCK DATABASES(com diversas opções).- Muito mais variáveis para
SHOW STATUS. Leitura e atualização de registros. Selects em 1 tabela e select com joins. Número de tabelas na select. Número de consultasORDER BYeGROUP BY. mysqladmin copy database novo-banco_dados; exige que o comandoCOPYseja adicionado aomysqld.- Lista de processos deve mostar o número de consultas/threads.
SHOW HOSTSpara xibir informações sobre a cache de nome de máquina.- Alterar o nome de tabelas de string vazias para
NULLpara colunas calculadas. - Não usar
Item_copy_stringem valores numéricos para evitar a conversão number->string->number no casos de:SELECT COUNT(*)*(id+0) FROM nome_tabela GROUP BY id - Alterar aqueles
ALTER TABLEque não abortam clientes que executamINSERT DELAYED. - Colunas referênciadas em uma cláusula
UPDATEirão conter os valores antigos antes da atualização iniciar.
- Retorna os tipos dos campos originais ao se fazer
- Novos sistemas operacioais.
- Portar os clientes MariaDB para LynxOS.