MySQL STORAGE & TRANSACTIONs Pedro da Silva. Índice 1. Storage 1.1. Tabelas MyISAM 1.1. Tabelas MyISAM 1.2 Tabelas InnoDB 1.2 Tabelas InnoDB 2. Transactions.

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Introdução Datagrama IP.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
Sistemas operacionais
Arquitetura e organização de computadores
Sistemas de Informação Redes de Computadores
Motor de Armazenamento
Modelagem Funcional.
Gerenciamento de Arquivos, Páginas e Registros
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Sistemas Operacionais II - Sistemas de Arquivos -.
Pesquisa em Memória Primária
Pesquisa em Memória Primária
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Oficina sobre banco de dados
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
LPG - I: Alocação Dinâmica de Memória - Ponteiros
1 Aula 4 Ponteiros. 2003/2004 Programação Orientada para Objectos 2 Instâncias de um programa C++ int i = 10; Nome: i Tipo: int Valor: 10.
2002/2003 Programação Orientada para Objectos 1 Aula 4 Memória, unidade básica de memória e conceito de endereço Ponteiros Relação de ponteiros com matrizes.
Listas Encadeadas.
Banco de dados Profª Kelly Medeiros.
Gerência de Memória.
Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados
Listas Simplesmente Encadeadas
ALGORITMOS E ESTRUTURAS DE DADOS
Professor Reverton de Paula Faculdade Anhanguera de Indaiatuba
Arquitectura de Computadores II
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin
Sistemas Operacionais Gerenciamento de Memória
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Pesquisa em Memória Primária
Linguagem de Programação II Parte IX
Sistemas Operacionais
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Programação WEB Modelo de Aplicação PHP usando Banco de Dados
FaculdadePitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Sistemas Gerenciadores de Banco de Dados Prof.: Fernando Hadad Zaidan.
Banco de dados.
Linguagem de Definição de Dados
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Gerenciamento de Arquivos
Capítulo V – Comandos de Entrada e Saída 5.1 – Equipamentos de entrada e saída 5.2 – Saída no vídeo-texto 5.3 – Entrada pelo teclado 5.4 – Entrada e saída.
1 Alocação Dinâmica Quando se declara arrays o tamanho deve ser fixo e definido primeiramente –Alocação estática Pode-se alocar dinamicamente o espaço.
Microsoft SQL Server 2008 SPARSE. Para que serve? –Otimiza o espaço de armazenamento de colunas com valores NULL.
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Postgres Storage Tecnologia de Base de Dados Nuno Costa – Nº
Falhas.
SQLite Banco de Dados II.
Infra-Estrutura de Software
Automação Comercial Faculdade Estácio Radial Prof. Paulo Alipio Alves de Oliveira 2010.
Professor: Pedro Lopes Gestão de Base de dados Ano Lectivo 2010/2011.
Aula Prática 12 Listas Encadeadas Monitoria
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Estruturas de Dados Dinâmicas IF672 - Algoritmos e Estruturas de Dados.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Daniel Paulo Introdução Informações de uma tabela ou view podem ser encontradas de maneira mais rápida através da utilização.
Estrutura de Dados Aula 3 - Listas
Módulo 2: Criando tipos de dados e tabelas. Visão geral do módulo Criando tipos de dados Criando tabelas Criando tabelas particionadas.
Sistemas de Arquivos.
INE5408 Estruturas de Dados Listas Encadeadas Simples.
11 Pilhas, Filas e Listas Duplamente Encadeadas Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas de Arquivos Capítulo Arquivos 6.2 Diretórios 6.3 Implementação do sistema.
Funções Passagem por valor e por referência passo a passo.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
M Fernando Forte2005 TRANSACÇÕES HSQL - Hypersonic SQL TECNOLOGIA DE BASES DE DADOS.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

MySQL STORAGE & TRANSACTIONs Pedro da Silva

Índice 1. Storage 1.1. Tabelas MyISAM 1.1. Tabelas MyISAM 1.2 Tabelas InnoDB 1.2 Tabelas InnoDB 2. Transactions

Storage MySQL suporta tabelas transaccionais e não transaccionais Motor de tabelas não transaccionais: MyISAM (motor por defeito em linux) MyISAM (motor por defeito em linux) Motores de tabelas transaccionais: InnoDB (motor por defeito em windows) InnoDB (motor por defeito em windows) BDB (última release) BDB (última release)

Storage Outros: NDB Cluster (tabelas particionadas em diversos computadores) NDB Cluster (tabelas particionadas em diversos computadores) ARCHIVE (tabelas grandes e sem índices) ARCHIVE (tabelas grandes e sem índices) EXAMPLE (motor de exemplo que serve de base para o desenho de novos motores) EXAMPLE (motor de exemplo que serve de base para o desenho de novos motores) Definir o motor usado para uma tabela: CREATE TABLE t (i INT) CREATE TABLE t (i INT) ENGINE = INNODB;

Tabelas MyISAM Características: Independente do Sistema Operativo e da Arquitectura Independente do Sistema Operativo e da Arquitectura Os dados são guardados num ficheiro.MYD Os dados são guardados num ficheiro.MYD Os índices são guardados em ficheiros.MYI Os índices são guardados em ficheiros.MYI Suporta registos fixos e dinâmicos Suporta registos fixos e dinâmicos Existem locks nas tabelas Existem locks nas tabelas Os scans são rápidos porque é possível ler sequencialmente Os scans são rápidos porque é possível ler sequencialmente

Tabelas MyISAM Estrutura dos registos: Cabeçalho para registos fixos: Cabeçalho para registos fixos: Bit X – 0 se registo apagado, 1 se registo não apagado Bits NULL – 0 se coluna não nula, 1 se coluna nula Bits preenchimento – com o valor 1 Colunas guardadas pela ordem em que foram criadas Colunas guardadas pela ordem em que foram criadas

Tabelas MyISAM Exemplo de um cabeçalho para registos fixos: INSERT INTO Table1 VALUES ('d', NULL, 'e') Valor do cabeçalho Valor do cabeçalho Bit menos significativo é o Bit X (a 1 - não foi apagado) 2º bit menos significativo, após o Bit X (coluna a NULL) Bits a 0 indicam que as colunas não estão a NULL Restantes Bits são de preenchimento

Tabelas MyISAM Cabeçalho para registos dinâmicos: Campos adicionais: Campos adicionais: Tamanho Actual – número total de bytes em todas as colunas Tamanho não usado – número total de bytes entre um registo e o próximo Ponteiro de Overflow – local do resto do registo (se este está dividido)

Tabelas MyISAM Código fonte: Registos dinâmicos Registos dinâmicos /myisam/mi_dynrec.c Registos fixos Registos fixos /myisam/mi_statrec.c

Tabelas InnoDB Características: Suporta Locks ao nível dos registos Suporta Locks ao nível dos registos Suporta chaves estrangeiras Suporta chaves estrangeiras Ocupa mais espaço em disco do que tabelas MyISAM Ocupa mais espaço em disco do que tabelas MyISAM Ocupa mais memória do que tabelas MyISAM Ocupa mais memória do que tabelas MyISAM

Tabelas InnoDB Estrutura dos registos: Cada registo físico contém 3 partes: Cada registo físico contém 3 partes: FIELD START OFFSETS – uma lista de números que indicam onde começa um registo EXTRA BYTES – um cabeçalho de tamanho fixo FIELD CONTENTS – dados do registo FIELD START OFFSETS: Lista em que cada entrada é a posição, relativamente à origem, do início do próximo campo. Lista em que cada entrada é a posição, relativamente à origem, do início do próximo campo.

Tabelas InnoDB FIELD CONTENTS As colunas são guardadas na mesma ordem em que foram criadas As colunas são guardadas na mesma ordem em que foram criadas Não existem “marcas” entre colunas pois a informação de início e fim dos campos é guardada no FIELD START OFFSETS: Não existem “marcas” entre colunas pois a informação de início e fim dos campos é guardada no FIELD START OFFSETS:

Tabelas InnoDB Estrutura das páginas (7 partes): Fil Header – onde se encontram os ponteiros para outras páginas da mesma tabela (página anterior e seguinte) Fil Header – onde se encontram os ponteiros para outras páginas da mesma tabela (página anterior e seguinte) Page Header – dados referentes à página (ponteiro para espaço vazio, bytes em registos apagados, etc.) Page Header – dados referentes à página (ponteiro para espaço vazio, bytes em registos apagados, etc.) Infimum + Supremum Records – definem os valores mínimos e máximos que os registos podem ter Infimum + Supremum Records – definem os valores mínimos e máximos que os registos podem ter User Records – onde se encontram os registos User Records – onde se encontram os registos Free Space – espaço livre da página (para mais registos) Free Space – espaço livre da página (para mais registos) Page Directory – número variável de ponteiros para registos pela ordem da chave (normalmente usado para fazer pesquisas nos registos da página) Page Directory – número variável de ponteiros para registos pela ordem da chave (normalmente usado para fazer pesquisas nos registos da página) Fil Trailer – 8 bytes de checksum para garantir integridade Fil Trailer – 8 bytes de checksum para garantir integridade

Tabelas InnoDB Código fonte: Dentro da pasta page: Dentro da pasta page: pageOpage.c pageOpage.ic pageOpage.h

Transactions Suportadas nas tabelas InnoDB e BDB Utilizam segmentos rollback Garante Atomicidade, Consistência, Isolamento e Durabilidade (ACID) Geridas numa tabela estatistica denominada transactions

Transactions Tabela TRANSACTIONS:

Transactions Tabela TRANSACTIONS (continuação):

Transaction Código fonte: Trx0trx.c – A transacção Trx0roll – O Rollback Trx0undo – Desfazer o log

Bibliografia Internals Documentação geral Artigos Manual de Referência Transacções /content.htm /content.htm /content.htm