O InnoDB
agora suporta ALTER
TABLE DROP FOREIGN KEY
. Você deve usar
SHOW CREATE TABLE
para ver a ID de
chaves estrangeiras geradas internamente quando quiser
apagar uma chave estrangeira.
SHOW INNODB STATUS
agora esxibe
informações detalhadas do último erro de
FOREIGN KEY
e UNIQUE
KEY
detectados. Se você não entender porque o
InnoDB
retorna o erro 150 de um
CREATE TABLE
, você pode utilizar isto
para estudar a razão.
ANALYZE TABLE
agora também funciona
para tabelas do tipo InnoDB
. Ela faz 10
inserções aleatórias para cada das árvores de índices
e atualiza a estimativa da cardinalidade do índice
adequadamente. Note que como isto é apenas uma
estimativa, repetidas execuções de ANALYZE
TABLE
podem produzir diferentes números. O
MySQL usa a estimativa de cardinalidade do índice apenas
an otimização de joins. Se alguma join não é otimizada
de modo apropriado, você pode tentar usar
ANALYZE TABLE
.
A capacidade de commit de grupo do
InnoDB
agora também funciona quando o
log binário do MySQL está habilitado. Deve haver mais de
2 threads cliente para commit de grupo estar ativo.
Alterado o valor padrão de
innodb_flush_log_at_trx_commit
de 0
para 1. Se você não tiver especificado-o explicitamente
em seu my.cnf
, e sua aplicação
executar muito mais lentamente nesta nova distribuição
é porque o valor 1 faz com que seja descarregado um log
para disco a cada commit de transações.
Adicionado uma nova variável global configurável de
sistema do MySQL
(innodb_max_dirty_pages_pct
). Ela é um
interio na faixa de 0 - 100. O padrão é 90. A thread
principal no InnoDB
tenta descarregar
as páginas da área de buffer já que grande parte deste
percetual ainda não foi descarregado em nenhum momento.
Se innodb_force_recovery=6
, não deixar
o InnoDB
fazer reparação de páginas
corrompidas baseadas no buffer de dupla escrita.
O InnoDB
agora inica mais rápido
porque ele não define a memória na área de buffer para
zero.
Corrigido um erro: a definição FOREIGN
KEY
do InnoDB
era confudida
com as palavras chaves 'foreign key' dentro dos
comentários do MySQL.
Corrigido um ero: se você apagasse um tablea para qual
havia uma referência de chave estrangeira, e
posteriormente criasse a mesma tabela com tipo de colunas
não correspondentes, o InnoDB
podia
entrar em dict0load.c, na função
dict_load_table
.
Corrigido um erro: GROUP BY
e
DISTINCT
podia tratar valores
NULL
como diferentes. O MySQL também
falahva ao fazer o lock da próxima chave no caso de uma
faixa de índice vazia.
Corrigido um erro: não faz COMMIT da transação atual
quando uma tabela MyISAM é atualizada; isto também faz
com que CREATE TABLE
não faça commit
de uma transação InnoDB
, mesmo quando
o log binário estiver habilitado.
Corrigido um erro: não permite que ON DELETE SET
NULL
modifique a mesma tabela onde o delete foi
feito; podemos permití-lo porqeu into não pode produzir
loops infinitos em operações em cascata.
Corrigido um erro: permitir HANDLER
PREV
e NEXT
também depois de
posicionar o cursor com uma busca única na chave
primária
Corrigido um erro: se MIN()
ou
MAX()
resultasse em um deadlock ou em
esgotamento do tempo de espera do lock, o MySQL não
retornava um erro, mas NULL
como o
valor da função.
Corrigido um erro: o InnoDB
esquecia de
chamar pthread_mutex_destroy()
quando
uma tabela era apagada. Isto podia causar perda de
memória no FreeBSD e outros Unix, exceto o Linux.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.