amazon dynamoDB ou MySQL para armazenar grandes matrizes dentro de cada linha

2

Estou tentando decidir qual banco de dados devo usar para um aplicativo que estou fazendo. Eu estava me inclinando para o dynamoDB por causa de sua escalabilidade, mas depois li na documentação que dizia:

there is a limit of 64 KB on the item size

embora pareça que o MySQL tem uma restrição semelhante documentada aqui

Este aplicativo armazenará muitos dados em dois arrays, que podem conter mais de 10.000 a 100.000 strings em cada. Eu estimo que essas strings terão cerca de 20 caracteres, de modo que cada elemento da matriz terá cerca de 40 bytes e cada matriz pode ter cerca de 4MB.

Dada essa situação, qual banco de dados da Amazon AWS você usaria? ou como você contornaria o limite de tamanho por linha?

    
por Logan Besecker 09.07.2012 / 03:03

3 respostas

4

There is a hard limit of 4096 columns per table, but the effective maximum may be less for a given table. The exact limit depends on several interacting factors.

Every table (regardless of storage engine) has a maximum row size of 65,535 bytes. Storage engines may place additional constraints on this limit, reducing the effective maximum row size.

MySql 5.0 Manual

Portanto, o DBMS deve permitir a você a mesma quantidade de dados dentro de cada linha. Parece que nem será suficiente para as suas necessidades ou para a sua maneira de processar dados.

De qualquer forma, você não deve armazenar tantos dados em cada linha, provavelmente seria melhor armazenar cada string separadamente e usar outras tabelas para referenciá-las.

    
por 09.07.2012 / 03:16
0

depois de ler mais na página requisito de armazenamento do MySQL , observei esta seção :

The internal representation of a table has a maximum row size of 65,535 bytes, even if the storage engine is capable of supporting larger rows. This figure excludes BLOB or TEXT columns, which contribute only 9 to 12 bytes toward this size. For BLOB and TEXT data, the information is stored internally in a different area of memory than the row buffer.

    
por 09.07.2012 / 03:29
0

Com o DynamoDB, é recomendável usar o Amazon S3 para armazenar valores maiores.

Outras opções incluem o gzip compactando o conteúdo, o que lhe dará cerca de 200 KB de armazenamento.

Por favor, veja os slides do Matt Woods abaixo:

link

    
por 12.07.2012 / 09:14