• Nenhum resultado encontrado

Novos Recursos Planejados Para a Versão em um Futuro Próximo

No documento refman-4.1-pt.a4 (páginas 35-37)

1. Informações Gerais

1.6. MySQL e o Futuro (o TODO)

1.6.4. Novos Recursos Planejados Para a Versão em um Futuro Próximo

• Novas funcionalidade

• Comando como do OracleCONNECT BY PRIOR ...para estruturas de busca tipo árvore (hierárquica) • Adicionar todos os tipos que faltam do SQL-92 e ODBC 3.0.

• AdicionarSUM(DISTINCT).

• INSERT SQL_CONCURRENTemysqld --concurrent-insertpara fazer uma inserção concorrente no fim do ar- quivo se o arquivo tiver lock de leitura.

• Permitir a atualização de variáveis nas instruçõesUPDATE. 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 comGROUP BY, como no exemplo a segu- ir:SELECT id, @a:=COUNT(*), SUM(sum_col)/@a FROM nome_tabela GROUP BY id.

• Adicionar a opçãoIMAGEaLOAD DATA INFILEpara não atualizar camposTIMESTAMPeAUTO_INCREMENT. • Adicionar a sintaxeLOAD 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 corres- pondendo às chaves primárias são atualizadas para o restante das colunas de entrada. No entanto, colunasfaltosas

na 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 umLOAD DATA INFILE ... REPLACE INTO.

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 li- dos.

• Novas funções para tyrabalhar com tipos de colunasSET: • ADD_TO_SET(valor,conjunto)

• REMOVE_FROM_SET(valor,conjunto)

• Se você abortar omysqlno 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.

• PermiteSELECT a FROM crash_me LEFT JOIN crash_me2 USING (a); neste caso é considerado queavem da tabelacrash_me.

• OpçõesDELETEeREPLACEpara a instruçãoUPDATE(isto deletará registros quando se tiver um erro de chave duplicada durante a atualização).

• Altera o formato deDATETIMEpara 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 anti- ga).

• Compatibilidade com os padrões, portabilidade e migração

• Não adicionar valoresDEFAULTautomáticos as colunas. Enviar um erro ao usar umINSERTque não contenha uma colu- na que não tenha umDEFAULT.

• Adicionar as funções de agrupamentoANY(),EVERY()eSOME(). No padrão SQL isto só funciona em colunas boolea- nas, mas podemos extendê-las para funcionar em qualquer coluna/expressão tratando valores 0 como FALSE e valores dife- rentes de 0 como TRUE.

• Corrigir para que o tipo deMAX(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;

• Aumento de velocidade

• Não permitir mais que um número definido de threads façam a recuperação do MyISAM ao mesmo tempo. • AlterarINSERT ... 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 depread()/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 ta- belas que podiam ser otimizados para executar consultas muito mais eficientes.

• Internacionalização

• Aprimoramentos de usabilidade

• Possibilita especificarlong_query_timecom uma granularidade em microsegundos.

• Ligue o códigomyisampackno servidor assim ele poderá realizar operaçõesPACKeCOMPRESS.

• Adicionar uma cache de chaves temporária duranteINSERT/DELETE/UPDATEpara podermos fazer um recuperação se o índice ficar cheio.

• Se você realizar umALTER TABLEem uma tabela que é ligada simbolicamente a outro disco, crie tabelas tenporárias nes- te disco.

• Implementar um tipoDATE/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 noMyISAM) sem threads. • Permitir variáveis SQL emLIMIT, como emLIMIT @a,@b.

• Saída automática domysqlpara um navegador web. • LOCK DATABASES(com diversas opções).

• Muito mais variáveis paraSHOW 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 paraNULLpara colunas calculadas.

• Não usarItem_copy_stringem valores numéricos para evitar a conversão number->string->number no casos de:SE- LECT COUNT(*)*(id+0) FROM nome_tabela GROUP BY id

• Alterar aquelesALTER TABLEque não abortam clientes que executamINSERT DELAYED.

• Colunas referênciadas em uma cláusulaUPDATEirão conter os valores antigos antes da atualização iniciar. • Novos sistemas operacioais.

• Portar os clientes MySQL para LynxOS.

No documento refman-4.1-pt.a4 (páginas 35-37)

Documentos relacionados