Tipos de dados do MySQL e MariaDB

Tipos de dados são uma forma de classificar as informações que serão armazenados no banco de dados.
Entender os tipos de dados que podem ser armazenados no banco e a que situações se adequam é importante para projetar um banco de dados o mais eficiente possível. Veja, a seguir, alguns dos tipos de dados mais comuns no MySQL, acompanhado de uma breve descrição.

Antes de definir exatamente o tipo de dado que você deseja definir, vale a pena prestar atenção nas seguintes diretrizes, para ajudar a ter melhores resultados:

  • os tipos de valores que podem ser usados;
  • que tamanhos podem ter
  • as operações que podem ser realizadas;
  • seus significados;
  • se podem/serão indexados
  • como devem ser armazenados etc.

Tipos de dados numéricos no MySQL

O MySQL tem todos os tipos numéricos possíveis, o que inclui exatos, aproximados, inteiros, de ponto fixo, ponto flutuante etc. A lista, abaixo, mostra um resumo dos tipos de dados possíveis no MySQL:

  • TINYINT — número inteiro muito pequeno (tiny);
  • SMALLINT — número inteiro pequeno;
  • MEDIUMINT — número inteiro de tamanho médio;
  • INT — número inteiro de tamanho comum;
  • BIGINT — número inteiro de tamanho grande;
  • DECIMAL — número decimal, de ponto fixo;
  • FLOAT — número de ponto flutuante de precisão simples (32 bits);
  • DOUBLE — número de ponto flutuante de precisão dupla (64 bits);
  • BIT — um campo de um bit.

Tipos de dados em strings

Strings são cadeias de caracteres. No MySQL, uma string pode ter qualquer conteúdo, desde texto simples a dados binários – tais como imagens e arquivos. Cadeias de caracteres podem ser comparadas e ser objeto de buscas.

  • CHAR — uma cadeia de caracteres (string), de tamanho fixo e não-binária;
  • VARCHAR — uma string de tamanho variável e não-binária;
  • BINARY — uma string binária de tamanho fixo;
  • VARBINARY — uma string binária de tamanho variável;
  • BLOB — um BLOB (Binary Large OBject – OBjeto Grande Binário) pequeno;
  • TINYBLOB — um BLOB muito pequeno;
  • MEDIUMBLOB — um BLOB de tamanho médio;
  • LONGBLOB — um BLOB grande;
  • TINYTEXT — uma string não-binária e de tamanho bem reduzido;
  • TEXT — uma string não-binária e pequena;
  • MEDIUMTEXT — uma string de tamanho comum e não-binária;
  • LONGTEXT — uma string não-binária de tamanho grande;
  • ENUM — de acordo com o manual do MySQL, é uma string, com um valor que precisa ser selecionado de uma lista predefinida na criação da tabela;
  • SET — é um objeto que pode ter zero ou mais valores – cada um dos quais precisa ser escolhido de uma lista de valores predeterminados quando da criação da tabela.

Armazenamento de data e hora

Há várias opções para armazenar dados relacionados a data e hora. Se você quiser apenas armazenar o ano referente a um evento, pode usar o tipo YEAR. O tipo TIMESTAMP pode ser usado para acompanhar as mudanças ocorridas em um campo de uma tabela. Veja os tipos e suas descrições:

  • DATE — o valor referente a uma data no formato 'CCYY-MM-DD'. Por exemplo 1985-11-25 (ano-mês-dia). O 'CC' se refere aos dois dígitos do século (Century, em inglês);
  • TIME — um valor horário no formato 'hh:mm:ss' (hora:minutos:segundos);
  • TIMESTAMP — timestamp é uma sequência de caracteres ou informação codificada que identifica uma marca temporal ou um dado momento em que um evento ocorreu. No MySQL, ele tem o formato 'CCYY-MM-DD hh:mm:ss' – neste caso, seguem a padronização ISO 8601;
  • YEAR — armazena um ano no formato 'CCYY' ou 'YY';

Dados espaciais

O MySQL tem suporte a tipos de dados que correspondem às classes OpenGIS. Alguns destes carregam valores geométricos simples:

  • GEOMETRY
  • POINT
  • LINESTRING
  • POLYGON

O GEOMETRY pode armazenar qualquer tipo de valor geométrico. Os outros valores simples (POINT, LINESTRING e POLYGON) têm seus valores restritos aos tipos geométricos a que se referem.
Os outros, que seguem listados, carregam valores relativos a coleções/coletivos:

  • GEOMETRYCOLLECTION
  • MULTILINESTRING
  • MULTIPOINT
  • MULTIPOLYGON

Assim, GEOMETRYCOLLECTION pode armazenar coletâneas de objetos de qualquer tipo. Os outros tipos coletivos (MULTILINESTRING, MULTIPOLYGON e GEOMETRYCOLLECTION) restringem-se a cada forma geométrica particular.

Mecanismos de armazenamento no MySQL ou Storage Engines

Tutorial Mysql - Storage Types - Mecanismos de armazenamentoEntenda os tipos de tabelas do MySQL ou os mecanismos de armazenamento (storage engines) e conheça os mais comuns.
O MySQL suporta diversos tipos de tabelas ou mecanismos de armazenamento. Ao entender os recursos presentes em cada tipo, você poderá criar e usar tabelas com maior eficiência e melhorar a performance de seus bancos de dados.
Neste texto, vou abordar 8 tipos de tabelas MySQL e explicar suas características, seus recursos, vantagens e desvantagens, no sentido de te ajudar a obter máxima eficiência e melhor performance do banco de dados.
Os mecanismos de armazenamento de dados são componentes de software dos bancos de dados que permitem criar, ler, atualizar e apagar dados do sistema.

MyISAM

O MyISAM estende os recursos do antigo ISAM. É otimizado para compressão, velocidade e as tabelas neste formato são portáveis entre várias plataformas e sistemas operacionais.
As tabelas neste formato, padrão até a versão 5.5, podem ter até 256 TB de tamanho – o que é um tamanho considerável. As tabelas MyISAM podem ser convertidas para tabelas comprimidas e somente leitura (read-only).
Ao iniciar, o sistema de banco de dados verifica as tabelas deste tipo e pode encontrar e corrigir setores defeituosos nas tabelas.
Este tipo é plenamente apropriado a ambientes com intensa leitura de dados e pouca escrita – melhor ainda, com nenhuma escrita. Sua principal deficiência é não ter suporte a transações e chaves estrangeiras.
Leia mais: No artigo “vantagens e desvantagens do MyISAM“, são delineados mais detalhadamente os casos em que este mecanismo de armazenamento é mais indicado ou não.

InnoDB

Este é, atualmente, o mecanismo padrão do MySQL. A Oracle é a mantenedora e dona do InnoDB (após ter adquirido, em 2005, a empresa responsável pelo seu desenvolvimento, a finlandesa Innobase Oy).
O banco de dados MariaDB e o Percona Server usam um fork deste mecanismo, chamado XtraDB – que costuma incorporar os novos recursos do InnoDB, tão logo eles sejam disponibilizados pela Oracle.
Entre seus recursos, cito o suporte total ao ACID, à transações, chaves estrangeiras, commit, rollback etc. Têm ótima performance e as tabelas neste mecanismo podem chegar a 64 Terabytes.
Tal como o seu antecessor, o InnoDB também é portável entre diferentes plataformas. E o MySQL também faz checagem e reparos nas tabelas, ao ser iniciado.
Resumindo, o InnoDB tem suporte a:

  • transações SQL e XA
  • tablespaces
  • chaves estrangeiras
  • indíces FULLTEXT
  • operações espaciais
  • colunas virtuais

MERGE

Trata-se de uma tabela virtual, que combina múltiplas tabelas MyISAM, que têm estruturas similares, em uma só tabela. A palavra inglesa merge pode ser usada com o significado de junção, mistura. Também é conhecido como mecanismo MRG_MyISAM. Uma vez que não tem seus próprios índices, este mecanismo usa os dos seus componentes.
Ao fazer uso deste mecanismo de armazenamento, você pode melhorar a performance da junção de várias tabelas. O MySQL só vai permitir as operações de SELECT, DELETE, UPDATE e INSERT em tabelas MERGE.
Se você executar o comando de remoção de tabela DROP TABLE, só as especificações MERGE serão removidas – as tabelas envolvidas “na mistura” não serão afetadas pela operação.

MEMORY (HEAP)

Este storage engine, que já foi conhecido como HEAP, cria tabelas com propósitos específicos, cujo conteúdo fica armazenado na memória.
Uma vez que os dados ficam muito vulneráveis a problemas de hardware, como oscilações na rede elétrica, é seguro usar este mecanismo apenas para tabelas temporárias, com restrições de escrita (que não podem ser alteradas) e com dados emprestados de outras tabelas.
A principal vantagem deste mecanismo é a agilidade com que se pode manipular os seus dados.

ARCHIVE

É otimizado para inserção ágil e rápida de grande quantidade de dados em arquivos comprimidos e não indexados, para economizar espaço.
Os registros são comprimidos ou descomprimidos sob demanda, à medida em que são inseridos ou requisitados.
CSV Storage Engine Mecanismo tipo de armazenamento

CSV

O mecanismo de armazenamento CSV (Comma Separated Values — valores separados por vírgulas)armazena os dados em arquivos de texto, separando os registros com vírgulas. Este é o mecanismo usado em listas de contatos do cartão SIM do seu celular:

"Odair José","1136789890"
"Reginaldo Rossi","8198786543"

É um padrão que ocupa pouquíssimo espaço, por sua simplicidade e tem maior compatibilidade com aplicativos tais como planilhas eletrônicas (Excel, LibreOffice etc).

FEDERATED

Ao criar uma tabela de dados com o uso de um dos mecanismos de armazenamento padrão (MyISAM, CSV ou InnoDB), o arquivo conterá uma definição de seu conteúdo e dados. Uma tabela FEDERATED consiste de uma definição dos dados que armazena – contudo, os seus dados estão fisicamente armazenados em um servidor remoto.
As tabelas deste mecanismo, consistem, portanto de 2 elementos:

  • um servidor remoto com uma tabela de banco de dados, contendo uma definição da tabela (em formato .frm) e a tabela à qual está associada. O tipo de tabela pode estar em qualquer formato que este servidor suporte;
  • um servidor local com uma tabela contendo uma definição que corresponde à da tabela no servidor remoto. Não há um arquivo de dados no servidor local – há uma conexão para a tabela no servidor remoto.

Blackhole

O mecanismo “buraco negro” aceita dados, mas não os armazena. Ao tentar recuperar os dados “armazenados”, você receberá sempre uma resposta vazia. Pode ser usado em projetos de bancos de dados distribuídos, onde estes são automaticamente replicados, mas não armazenados localmente.
É comum ser usado para rodar testes de performance.

LEIA MAIS
  • O MyISAM — Aplicabilidade, vantagens e desvantagens deste mecanismo de armazenamento.
  • Tipos de dados — Conheça os tipos que você pode usar nas tabelas.

Conclusão

Os formatos padrão, InnoDB e MyISAM, acabam por ser as escolhas mais seguras na grande maioria dos casos. Se houver necessidade de fazer transações, escolha o InnoDB (padrão nas versões atuais do MySQL). Em casos fora do comum, um destes outros mecanismos que você conheceu pode ser o mais adequado.

O que você precisa saber sobre rooting do seu smartphone ou tablet Android

Rooting ou fazer root no celular Android é um processo que visa dar ao usuário privilégios administrativos (de superusuário) sobre seu aparelho. O processo varia de modelo para modelo — e, por isso, este texto não vai ensinar você a fazer root no seu smartphone.
Este texto faz uma avaliação das vantagens e desvantagens de rootear o seu aparelho celular ou tablet Android e introduz alguns conceitos básicos importantes sobre o processo.

Para entender melhor alguns termos ou jargões inerentes ao processo de rooting, leia Glossário do rooting.
Procure se cercar de boas informações antes de dar um passo adiante.

Vale a pena fazer root no celular androidCom este nível de controle é possível modificar arquivos que antes você não podia, usar recursos avançados de certos aplicativos (overclocking, por exemplo), alterar o funcionamento do aparelho, tirar screenshots, remover aplicativos indesejáveis e “irremovíveis” da operadora ou do fabricante, mudar a ROM do seu sistema etc. Enfim, um mundo novo se abre para quem faz rooting e você se torna definitivamente dono do seu aparelho.

O que é uma ROM?

Uma ROM é uma “versão customizada/alterada do Android”. Ao instalar uma ROM diferente no seu aparelho, você desfrutará de maior velocidade, de novos aplicativos, de um melhor aproveitamento dos recursos do hardware e um visual diferenciado dos demais modelos similares ao seu.
O que atrai muitas pessoas a fazer rooting é a possibilidade de instalar uma versão diferente e, possivelmente, mais atualizada do Android – independente do fabricante do seu smartphone tê-lo lançado pro seu modelo ou não.
Para cada modelo específico de celular é necessário ter uma ROM customizada para ele. Este é um dos motivos pelos quais o processo é diferente entre os diversos modelos de aparelhos.
Use o Google ou outro motor de busca para encontrar a ROM específica do seu aparelho.

Possíveis consequências de rootear o seu aparelho

A liberdade e o poder de acessar mais recursos têm seu preço.
Normalmente, o processo de aplicar o rooting em seu aparelho é simples e não causa danos, se executado de maneira adequada.
Há basicamente duas consequências ruins que você deve considerar antes de iniciar o processo:

  • O rooting remove uma camada importante de proteção do seu aparelho — programas maliciosos podem causar danos ao sistema, se executados com privilégios administrativos e é exatamente isto que poderá acontecer se você instalar programas de fontes não confiáveis em seu sistema.
  • Perda de garantia — a maioria dos fabricantes cassa a garantia de aparelhos rooteados, por considerá-los modificados sem sua autorização. Mas, neste caso, é possível reverter o processo antes de enviar pra assistência.

Conclusão

Geralmente, o rooting é recomendado. Principalmente se o seu aparelho tem limitações de memória e veio pré-carregado com vários bloatwares — aqueles programas da operadora ou do fabricante, que você não precisa e que ocupam espaço visual e físico no seu smartphone.
Fazer uso de apps que permitem melhorar a eficiência do processador ou do consumo de energia do seu aparelho, só é possível após o rooting.
Se tomados os devidos cuidados, portanto, o processo tende a ter apenas vantagens.

A Qualcomm mostra as melhorias que virão no novo chip Snapdragon 805

feat - Qualcomm-shows-camera-improvements-coming-with-Snapdragon-805A Qualcomm já lançou o chip que (dizem por aí) irá equipar o novo Samsung Galaxy S5 e o HTC One+. Trata-se do Snapdragon 805.
Mais do que “apenas” mais poder de processamento, este chip trará melhorias significativas à experiência dos usuários com suas câmeras.
Entre os novos recursos, há 3 que se destacam:

<

ul>

  • Chroma Flash — tem a intuito de melhorar a qualidade das imagens tiradas em ambiente de pouca luz. Para evitar as imagens frias, criadas pela luz do flash, o recurso tira duas fotos – uma com flash, outra sem – e as combina, criando uma só imagem, mais suave, que preserva a cor natural do ambiente.
  • touch to track — que, numa tradução livre, quer dizer “toque para seguir”, faz com que a câmera mantenha o foco em qualquer objeto que você toque, mesmo que você se movimento ao redor dele. O foco se mantém fixo no objeto que você escolheu.
  • OptiZoom — um recurso semelhante ao anterior, só que ele fixa o zoom no objeto escolhido, permitindo que você se movimente. Ele não perde o foco.
  • Confira os recursos em ação nos vídeos que seguem:

    Demonstração do Chroma Flash

    Demonstração do Action Shot

    Demonstração do OptiZoom

    5 formas de silenciar a câmera do seu celular Android

    Silencie a câmera do seu celular sem recorrer ao root. Quaisquer que sejam os seus motivos, se você quer desativar o som do obturador da câmera do seu celular, vou explicar aqui, de forma genérica, por que às vezes é tão difícil conseguir uma coisa tão simples e como contornar estas dificuldades com algumas soluções de fácil aplicação.
    samsung galaxy s5 preto vista parcial da câmera e sensores

    Por que o som da câmera de alguns celulares não pode ser desligado?

    Há basicamente 2 motivos para isto:

    • Alguns países têm leis que obrigam os fabricantes a manter o som do obturador da câmera ligado
    • Algumas operadoras, como a Sprint norte-americana têm uma “política de privacidade” neste sentido e, portanto, removem a opção de silenciar o obturador da câmera nos aparelhos que comercializam.

      “A Sprint adotou, nos últimos anos, a política de requerer que o som do obturador da câmera não possa ser desligado pelo usuário final. Esta política se deve a questões de preservação da privacidade das pessoas ao redor de quem está usando o aplicativo nativo de câmera de um dos nossos celulares. Este é um exemplo do nosso compromisso com a privacidade das pessoas com relação ao uso de dispositivos móveis.
      Esta especificação não afeta aplicativos de terceiros que o usuário vier a baixar e usar no lugar do software de câmera nativo do seu aparelho.”

    Uma vez estabelecidas “as culpas” por seu aparelho ser tão indiscreto, existe situações em que é perfeitamente legítimo querer mais discrição:

    • Você quer tirar apenas uma ou outra selfie — mas não deseja que todo mundo fique olhando para você, a cada clique,
    • Fotos de um bebê ou um animal de estimação dormindo — que você não deseja perturbar,
    • etc.
    Confira algumas dicas, para tirar selfies mais caprichadas.
    Confira algumas dicas, para tirar selfies mais caprichadas.

    Desabilite o som do obturador no menu de configurações

    Se você ainda não tentou, ligue a câmera do seu aparelho, clique no botão do menu de configurações e procure por Shutter sound, se estiver usando um aparelho Android no idioma Inglês. Em português, esta opção deverá estar parecida com “som da câmera”, se houver.

    Silenciar som da câmera no menu de configurações do Galaxy S3
    Clique para ampliar

    Se o seu aparelho não tiver restrições, a opção de desligar o som da câmera deve estar lá, próximo a “Armazenamento” (Storage).
    android desligar reiniciar
    Clique para ampliar

    Ponha o smartphone no modo silencioso

    Se a solução anterior não funcionou, tenho outra que é simples e (quase) sempre funciona: Ponha o aparelho no modo silencioso.
    Uma das maneiras de fazer isto, é manter apertada a tecla para diminuir o volume do celular, até que ele vibre, indicando que está mudo. Outra é manter pressionada a tecla “Power”, até que o menu pop up apareça e, selecionar o ícone “Silenciar” (mute), no canto inferior esquerdo.
    Agora, abra o aplicativo de câmera e experimente tirar uma foto. Na maioria dos aparelhos, esta dica soluciona o problema.

    reprodutor de video android
    Clique para ampliar

    LEIA MAIS

    Use a gravação de vídeo

    Alguns aparelhos costumam emitir um som ao iniciar a gravação de vídeo. Outros não. Mesmo os que emitem, costumam ser bem mais discretos que “o obturador” da câmera.
    Novos aparelhos, equipados com as novas versões do Android, permitem tirar screenshots de trechos das filmagens. Ou seja, depois de ter filmado toda a cena que você desejava fotografar, reproduza o filme e clique na pequena câmera – na parte superior central da tela de exibição – assim que a reprodução chegar ao ponto desejado. Você pode repetir este procedimento quantas vezes quiser.

    Tire fotos, enquanto filma

    Uma solução similar, é usar o recurso de tirar snapshots enquanto você está filmando, como o Dumitru mostra no video abaixo. No caso, ele demonstrou o uso do recurso em um Samsung Galaxy S3 (veja se o seu aparelho não tem recurso semelhante):

    Silencie a câmera com aplicativos de terceiros

    Tal como o recado da Sprint sugeria, lá em cima, recorra a aplicativos de terceiros. Você pode baixar um software que silencie sua câmera, como o Silent Camera, no Google Play.
    Experimente outros, antes de decidir.

    Baixe um outro aplicativo para substituir a câmera nativa

    A qualidade destes aplicativos não chega a ser tão boa quanto o padrão que vem de fábrica. Ainda mais depois da última atualização do Android, que aprimorou o recurso. Mas, enfim, um destes apps de câmera pode quebrar o seu galho.

    Remova ou renomeie o arquivo de som da câmera

    android tirar som câmera obturador
    Clique para ampliar
    Remover é muito radical, certo? Se o seu aparelho já foi rooteado, você pode renomear os arquivos que reproduzem sons durante a sessão de foto. Isto já será o suficiente. Se, mais tarde, você quiser voltar tudo ao que era, basta devolver o nome original a cada arquivo.
    Neste caso, dirija-se ao diretório:
    system/audio/UI
    Localize os arquivos de som, que costumam ser os seguintes:

    Auto_focus.ogg
    Auto_focus_error.ogg
    camera_click.ogg
    Camera_click_short.ogg
    Shutter.ogg
    Shutter_multiple.ogg
    VideoRecord.ogg

    Renomeie todos ou apenas os que você quiser. Assim, o arquivo Shutter.ogg pode ser renomeado para Shutter.ogg.bak.
    Isto basta para impedir que o sistema encontre o arquivo de som e o reproduza.

    LEIA MAIS:

    Conclusão

    De todas as soluções apresentadas aqui, minhas duas favoritas são: colocar o dispositivo no modo silencioso antes de tirar as fotos. A outra é rootear o seu aparelho e renomear o arquivo de som, como solução definitiva.
    Para tirar selfies discretas, experimente o Candy Camera, que tem opção “mudo” para o obturador.
    E você? Conte como conseguiu resolver o problema.