1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Tipo de tabelas MySQL

Discussão em 'Programação' iniciada por ThinkBrunus, 6 de Maio de 2009. (Respostas: 12; Visualizações: 1024)

  1. ThinkBrunus

    ThinkBrunus Power Member

    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).
     
  2. AliFromCairo

    AliFromCairo Power Member

    O MySQL faz a gestão de controle de concorrência, pelo que em princípio não deverás ter de te preocupar com vários utilizadores a executarem os mesmos procedimentos em simultâneo. Em relação ao tipo de tabela, e assumindo que te referes ao storage engine, depende da versão que estás a utilizar, e dos requisitos da tua aplicação. No entanto, eu diria que InnoDB cumpre a grande maioria dos requisitos de uma aplicação do tipo que referiste.
     
    Última edição: 6 de Maio de 2009
  3. ThinkBrunus

    ThinkBrunus Power Member

    Tinha essa dúvida em relação à gestão de controle, como referiste.
    Pelo que estive a ler (http://www.criarweb.com/artigos/674.php), fiquei com a ideia que InnoDB era o sistema indicado a utilizar, como não tenho experiência resolvi pedir opinião sobre o assunto.

    Obrigado pela dica!
     
  4. AliFromCairo

    AliFromCairo Power Member

    Em teoria, o MySQL suporta diversos storage engines; na prática, apenas o MyISAM e o InnoDB podem de facto ser considerados para utilização em ambiente de produção (na minha opinião). De uma forma muito simplificada, e tal como já deves ter certamente observado pelas diversas opiniões existentes na web, a grande diferença reside no facto de o InnoDB suportar transacções, e o MyISAM não. Isto faz também com que o InnoDB suporte outras features relacionados (e úteis), como por exemplo, diferentes níveis de isolamento, locks ao nível do registo (o que possibilita mais transacções por minuto) versus ao nível da tabela, como no MyISAM.

    Outro dos "mitos" à volta destes dois tipos, é o de que o MyISAM é mais rápido que o InnoDB. Em tempos, talvez já tenho sido, mas neste momento, tal não me parece ser verdade. Aliás, a Wikipedia utiliza (ou utilizava) InnoDB, o que diz muito sobre a escalabilidade do mesmo.

    Resumindo, neste momento, para a grande maioria das aplicações, o InnoDB deverá ser a weapon of choice. O MyISAM, devido à sua simplicidade, deve ser considerado para servidores com recursos muito limitados, ou para tarefas muito específicas como full text search, que não são suportadas pelo InnoDB.
     
  5. ThinkBrunus

    ThinkBrunus Power Member

    Estou convencido, obrigado pela opinião!
    Estou a criar a base de dados com o tipo de tabelas InnoDB e o charset=utf8_general_ci.

    Já agora aproveito para uma situação que está a acontecer, faço o export da base dados e quando vou importar 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, já vos aconteceu algo do genero?
     
  6. K0mA

    K0mA Power Member

    Já tive para colocar exactamente esta questão aqui no forum...
    Já agora Em blogs e foruns o melhor será MyIsam para permitir full text search?
     
  7. ThinkBrunus

    ThinkBrunus Power Member

    Pois talvez seja boa ideia criar um tópico sobre o assunto.
    Obrigado pela opinião.
     
  8. ThinkBrunus

    ThinkBrunus Power Member

    Quanto ao export que referi no post anterior, indicaram-me as seguintes aplicações: mysql administrador e do query browser.
    Desconhecia estas aplicações, já as testei e achei-as bastante eficazes e simples. Para quem tenha ou venha a ter o problema referido, fica esta possível e viável uma solução.

    Obrigado!
     
  9. AliFromCairo

    AliFromCairo Power Member

    Sim, as MySQL GUI Tools dão bastante jeito.

    Em relação ao full text search para blogs e fóruns, recordo que é possível utilizar diferentes storage engines em diferentes tabelas, pelo que podes utilizar MyISAM na tabela onde pretendes fazer as pesquisas, e InnoDB nas restantes.

    No entanto, na minha opinião, utilizar o google custom search (tal como já existe aqui no fórum) será certamente uma boa opção para ambos os casos, até porque já tenho lido relatos de problemas relacionados com o full text search do MySQL. Caso seja necessário efectuar pesquisas mais refinadas, e sobre um conjunto de dados muito mais vasto, então o ideal talvez seja utilizar algo semelhante ao Apache Lucene para fazer a indexação e pesquisa; a Wikipedia utiliza.

    Espero que ajude.
     
  10. ThinkBrunus

    ThinkBrunus Power Member

    Ajuda bastante, obrigado pela opinião!
     
  11. jasb

    jasb Power Member

  12. K0mA

    K0mA Power Member

  13. ThinkBrunus

    ThinkBrunus Power Member

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

Partilhar esta Página