• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

thinkbrunus

Tipo de tabelas MySQL

16 mensagens neste tópico

Viva!

Estou a desenvolver um portal para uso interno no meu trabalho, e ando a estudar algumas matérias antes de começar a desenvolver alguma coisa.

Gostaria de saber a vossa opinião relativamente ao tipo de tabela a utilizar, visto que com o acumular do tempo o volume de informação deve ser grande e certamente haverão situações em que vários utilizadores executaram o mesmo procedimentos em simultâneo (não sei se esta situação implica alguma precaução em especial).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá!

Olha, muito mais importante que o tipo de tabelas vai ser realmente o desenho da base de dados. Um bom esquema e tens 90% dos problemas solucionados.

Uma regra que eu sigo é a seguinte: eu não apago nada da BD. Isto é, eu posso ter algo activo/inactico, em curso/cancelado. Acredito que é boa política não se perder informação.

Relativamente ao número de acessos para modificar um registo de uma tabela, tens sistemas de "semáforos" que te fazem essa gestão. Pessoalmente nunca tive de resolver essa questão, por isso não sou a pessoa que te deve aconselhar.

Quando falas que o volume pode ser grande significa a quantidade de informação ou por exemplo, o facto de trabalhares com imagens ou ficheiros?

Já agora, qual o servidor de bd que estás pensar em usar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá!

A modelação da base de dados já tenho feita, estou agora a passar à fase da implementação.

A quantidade de informação, para já, é apenas a quantidade de registos nas várias tabelas...apenas texto

Vou utilizar o MySQL.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Faz uma estimativa de quantos registos terás por tabela e do tamanho de cada registo.

Assim saberás o tamanho físico de cada tabela e a da base de dados.

Mas não te preocupes com o tamanho da base de dados, a menos que vás desenvolver um data warehouse, vais demorar muitos anos até atingires as centenas de megas por tabela.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelas opiniões que já li, vou utilizar o tipo de tabelas InnoDB e o charset=utf8_general_ci.

Já agora aproveito para deixar uma situação que me aconteceu no ar, quando faço o export da base dados e quando vou importar noutro PC, os campos são preenchidos até ao 1º caracter acentuado...para já não me faz diferença, mas no futuro quem sabe? Estou a fazer o export/import no phpMyAdmin, conhecem alguma solução para isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha, o que estás a dizer é muito estranho... e realmente ainda bem que levantas a questão. Já agora, que ferramentas estás a usar para fazer a exportação?

Outra coisa, já utilizaste o mysql administrator e o query browser? Pessoalmente prefiro-os do que ao PHPmyAdmin. Diz-me a tua opinião.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Segui a tua dica e fui atrás do mysql administrador e do query browser, já os testei e à primeira vista achei-os bastante eficazes e práticos!

Vou passar a utilizar estes.

Obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No seguimento deste tópico andei a fazer alguns testes no backup à base de dados, e deparei-me com o seguinte, acedendo ao phpMyAdmin selecciono a base dados e surge a listagem das tabelas

Tabela | Acções | Registos | Tipo

------------------------------------

teste  | ......... |          0 | InnoDB

teste1  | ......... |          0 | InnoDB

2 tabela(s) | Soma |        0 | MyISAM

Como exemplo na tabela acima, na coluna tipo os tipos de tabelas estão certos, apenas no fim aparece MyISAM. Esta situação implica alguma coisa no funcionamento da base dados?

Já tentei criar uma tabela e tal como nas tabelas colocar a linha TYPE = InnoDB, mas não está a resultar....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha que na norva versão do mysql mudou um pouco a nomenclatura.

Creio que agora usas ENGINE=InnoDB e não Type=InnoDB

O facto de ser do tipo InnoDB permite-te garantires a integridade da base de dados. Isso faz sentido quando começas a trabalhar com chaves estrangeiras.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Gostaria de saber a vossa opinião relativamente ao tipo de tabela a utilizar, visto que com o acumular do tempo o volume de informação deve ser grande e certamente haverão situações em que vários utilizadores executaram o mesmo procedimentos em simultâneo (não sei se esta situação implica alguma precaução em especial).

Os diferentes motores disponíveis para serem utilizados em tabelas do mysql, têm características bastante diferentes.

Com a informação que disponibilizaste não se pode recomendar nada. Cada caso é um caso muito particular.  Por exemplo questões como a concorrência e a integridade referencial são relevantes, a rapidez com que se faz operações de escrita, ou de leitura também. No entanto até dentro da mesma base de dados, podemos ter tabelas com requisitos completamente distintos que nos fazem utilizar motores diferentes.

Por exemplo estou num projecto em que utilizamos vários motores diferentes, porque temos problemas muito diferentes para resolver e quantidades muito grandes de dados para lidar (ainda sem termos tudo em produção lidamos com aproximadamente com mais de uma dezena de GB por dia), para tabelas que têm necessidades diferentes.

Se só utilizasse-mos um dos motores não conseguiríamos ter a aplicação a funcionar de forma aceitável. Precisamos de utilizar o motor certo para a tarefa certa. E tu tens que identificar bem as necessidades que vais ter com o teu modelo de dados e aplicar o motor certo na tabela certa.

A necessidade de concorrência, a capacidade de recuperar de falhas, a frequência de operações de escrita, ou de consulta são das coisas mais importantes a ter em conta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora recomendo que utilizes as ferramentas da MySQL, o Query Browser, o Administrator e o Workbench...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá, falco!

Obrigado pela tua resposta tão esclarecedora.

O projecto que estou a trabalhar é um portal que estou a desenvolver de raiz, e claro implica auto estudo e como a experiência não é muita gosto de ouvir algumas opiniões de forma a direccionar o meu trabalho para a direcção certa.

Este portal irá substituir algumas rotinas, diminuindo o volume de papel e redução do tempo despendido. Estou a desenvolver algumas aplicações, entre as quais sistema de autenticação (front e back office), painel de administração das aplicações que vou desenvolvendo e também a gestão de utilizadores. Num futuro próximo será desenvolvida uma aplicação para gerir pedidos de helpdesk e outras do genero, acho que vai ter algum fluxo de informação, mas não chegará certamente ao GB por dia...acho eu!

Já estou a utilizar as ferramentas que sugeriste, e diga-se que têm dado um jeitão valente.

Vou estudar bem a situação, e depois tomar uma decisão.

Mais uma vez obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Já estou a utilizar as ferramentas que sugeriste, e diga-se que têm dado um jeitão valente.

Sim apesar das suas limitações, são muito úteis.

Com tanta coisa que existe precisavas mesmo de desenvolver algo de raiz?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tentei ver alguns CMS's, talvez pudesse utilizar algum....

Utilizei um, mas não conseguia utilizar de forma clara algumas tags, assim como AJAX...perdi quase um mês de volta disso e não fiz nada que se visse, para além de teste e tentativas.

Assim optei por aventurar-me a desenvolver algo de raiz, talvez seja mais complicado e não tão fácil personalizar, estou a desenvolver o portal e várias aplicações a implementar neste que se adaptam completamente às necessidades do organização onde trabalho....

Verdade seja dite, tá a ser um quebra cabeças, andar a planear como vai ser tudo, sistema de autenticação, permissões, restrição a informação conforme as permissões, e agora painel de administração...tem dado um trabalho valente e ainda na vai a meio...enfim, na verdade estou a gostar do desafio. Desta forma permite aprofundar os meus conhecimentos e aumentar a partilha do mesmo, assim como leva-me a estudar a fundo questões como estas da tabela e trabalhar à volta disto.

Como te digo, é uma aventura!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que tu queres não é um CMS...

Queres algo do género de um ERP, um RT e/ou um sistema de gestão documental...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

talvez seja isso, na verdade sei pouco acerca do assunto.

O que na verdade se pretende com este portal é disponibilizar aplicações que vão sendo desenvolvidas no sentido de optimizar alguns processos internos (mais propriamente requisição de serviços), partilha de informação (neste caso pretende-se desenvolver tipo um arquivo para armazenar docs pdf, powerpoint e docs texto) e com o tempo ir acabando com as bases de dados existente em access e importar estas para MySQL....

Talvez isto seja esse tipo de aplicações te referes, no entanto se tiveres alguma sugestão será bem vinda. Estamos sempre a aprender!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora