Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Alguém conhece uma maneira de gravar um número determinado de linhas numa tabela e poderia dividir? Um número máximo que, na tentativa de ultrapassá-lo, fosse excluído o registro da linha mais antiga? Como numa aplicação chat em que os registros mais antigos fossem excluídos quando a conversa fica grande demais, só que dentro do banco de dados sem utilizar chat com arquivo txt, por exemplo?
Obrigado!
Muito obrigado, giesta! Esses dias eu li a respeito do 2^64, que se daria com a opção "with big tables", mas não sei como utilizar. Será que é complicado fazer com que uma tabela seja configurada como "with big tables"? Não sabia que um longtext podia ser tão grande assim! Na verdade eu só conhecia o BLOB de nome, o longtext não.
Acredito que o ideal seja você gravar grandes quantidades de texto via longtext, já que provavelmente você não irá pesquisar esse texto com frequencia. Acredito que seja mais por motivos de auditoria/registro ou coisa assim.
O problema de se fazer uma linha de texto para cada linha da tabela é que a tabela ficará grande rapidamente e isso pode impactar a performance da aplicação rapidamente.
Porém para responder a sua pergunta existem 3 jeitos.
1. é startar o daemon do mysql já com a variavel -> mysqld --with_big_tables
2. é fazer a mesma coisa porém mudando direto pelo mysql.conf(ou equivalente)
3. é Setar a variavel na mao com SET
Olá, giesta! Então.. Startar o daemon seria algo numa linha de comando? Dei uma lida no link https://dev.mysql.com/doc/refman/5.0/en/source-configuration-options.html#option_configure_with-big-tables, vi que tinha que usar na linha de comando: shell> ./configure --help. Pra mim isso é estranho. Sou um usuário iniciante de phpmyadmin...
phpmyadmin é uma interface gráfica para gestão do banco.
O banco em si possui uma instalação, mas para nao complicar as coisas vc pode mudar no mysql.conf
Então as tabelas de MySQL dependendo da configuração e do engine usado suportam mtos dados
http://dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html
http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html
2^32 ou 2^64 dependendo da configuração, porém quando esse limite for atingido a tabela já estará bastante lenta para um sistema que exige que vc grave milhares linhas por segundo, principlamente se forem vários usuários do sistema.
O ideal é colocar um campo BLOB ou LONGTEXT . No caso do LONGTEXT que é bem mais simples de usar cada campo suporta até 4,294,967,295 caractéres.
https://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html