AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-43

Patrick's questions

Martin Hope
Patrick
Asked: 2013-05-30 12:07:13 +0800 CST

Qual é o design de banco de dados adequado para uma tabela drupal com um campo de pedido?

  • 1

Estou adicionando um widget personalizado a uma instância do Drupal 6.x e MySQL 5.5 e encontrei um problema ao atualizar as linhas.

Eu tenho uma tabela de ingredientes de receita em que vários ingredientes estão vinculados a uma única receita por id de nó (nid) e id de versão (vid).

A chave primária é vid, nid & order.

Os campos vid e nid estão relacionados aos campos nid e vid da receita.

O esquema da tabela é:

+-----------------+------------------+
| Field           | Type             |
+-----------------+------------------+
| vid             | int(10) unsigned |
| nid             | int(10) unsigned |
| order           | int(10) unsigned |
| name            | varchar(255)     |
| unit_of_measure | varchar(32)      |
| quantity        | int(10) unsigned |
+-----------------+------------------+

O problema surge ao tentar reordenar os ingredientes.

Por exemplo:

+-----+-----+-------+---------+-------------------+----------+
| vid | nid | order |  name   |  unit_of_measure  | quantity |
|  5  |  1  |   1   | Chicken |        Lb         |    1     |
|  5  |  1  |   2   |  Rice   |        Cup        |    2     |
|  5  |  1  |   3   |  Thyme  |        Tbsp       |    3     |
+-----+-----+-------+---------+-------------------+----------+

Quero mover o tomilho para o topo da lista, mas não posso alterar a ordem do tomilho para 1, pois a chave primária já existe (frango). Não consigo mover o Frango para o pedido 2 porque o Arroz já está lá, etc...

Minha posição é que devemos adicionar um campo int exclusivo de incremento automático que será a única chave primária. O que nos permitirá reordenar as linhas sem incidentes com a possibilidade de que duas linhas acabem com o mesmo nid, vid e order.

A posição de meus colegas de trabalho era que adicionar um campo int de incremento automático exclusivo é um design ruim, porque nunca deve haver duas linhas diferentes com o mesmo vid, nid e ordem. Mas seguindo essa crença, existem duas maneiras de implementar uma reordenação das linhas

  1. Atualize a ordem de cada linha com um número grande (ou seja, 1001, 1002, 1003) para que a ordem original não seja mais conflitante e, em seguida, atualize cada linha com os valores de ordem corretos (1, 2, 3).
  2. Exclua cada linha que tenha o mesmo nid e vid e insira todas as linhas novamente na ordem correta.

Do ponto de vista do banco de dados, qual é a abordagem correta?

database-design drupal
  • 2 respostas
  • 213 Views
Martin Hope
Patrick
Asked: 2012-09-28 18:54:13 +0800 CST

Post mortem do MySQL InnoDB

  • 29

MySQL caiu em mim esta manhã.

Com exceção dos bancos de dados incluídos no MySQL padrão, tudo o que uso é o InnoDB.

Tentei reiniciar o daemon do MySQL, mas falhou duas vezes.

Em seguida, reiniciei todo o servidor e o MySQL iniciou corretamente e tem funcionado bem desde então.

O arquivo de log do mysqld para a falha inicial contém o seguinte:

120927 10:21:05 mysqld_safe Number of processes running now: 0
120927 10:21:06 mysqld_safe mysqld restarted
120927 10:21:12 [Note] Plugin 'FEDERATED' is disabled.
120927 10:21:12 InnoDB: The InnoDB memory heap is disabled
120927 10:21:12 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120927 10:21:12 InnoDB: Compressed tables use zlib 1.2.3
120927 10:21:12 InnoDB: Using Linux native AIO
120927 10:21:13 InnoDB: Initializing buffer pool, size = 4.0G
InnoDB: mmap(4395630592 bytes) failed; errno 12
120927 10:21:13 InnoDB: Completed initialization of buffer pool
120927 10:21:13 InnoDB: Fatal error: cannot allocate memory for the buffer pool
120927 10:21:13 [ERROR] Plugin 'InnoDB' init function returned error.
120927 10:21:13 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
120927 10:21:13 [ERROR] Unknown/unsupported storage engine: InnoDB
120927 10:21:13 [ERROR] Aborting

120927 10:21:13 [Note] /usr/libexec/mysqld: Shutdown complete

120927 10:21:13 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Ao tentar reiniciar o daemon, o arquivo de log mysqld contém:

120927 10:43:44 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120927 10:43:44 [Note] Plugin 'FEDERATED' is disabled.
120927 10:43:44 InnoDB: The InnoDB memory heap is disabled
120927 10:43:44 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120927 10:43:44 InnoDB: Compressed tables use zlib 1.2.3
120927 10:43:44 InnoDB: Using Linux native AIO
120927 10:43:44 InnoDB: Initializing buffer pool, size = 4.0G
InnoDB: mmap(4395630592 bytes) failed; errno 12
120927 10:43:44 InnoDB: Completed initialization of buffer pool
120927 10:43:44 InnoDB: Fatal error: cannot allocate memory for the buffer pool
120927 10:43:44 [ERROR] Plugin 'InnoDB' init function returned error.
120927 10:43:44 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
120927 10:43:44 [ERROR] Unknown/unsupported storage engine: InnoDB
120927 10:43:44 [ERROR] Aborting

120927 10:43:44 [Note] /usr/libexec/mysqld: Shutdown complete

120927 10:43:44 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Após a reinicialização do servidor, o arquivo de log do mysqld contém:

120927 10:46:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120927 10:46:11 [Note] Plugin 'FEDERATED' is disabled.
120927 10:46:11 InnoDB: The InnoDB memory heap is disabled
120927 10:46:11 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120927 10:46:11 InnoDB: Compressed tables use zlib 1.2.3
120927 10:46:11 InnoDB: Using Linux native AIO
120927 10:46:11 InnoDB: Initializing buffer pool, size = 4.0G
120927 10:46:11 InnoDB: Completed initialization of buffer pool
120927 10:46:12 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
120927 10:46:12  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
120927 10:46:15  InnoDB: Waiting for the background threads to start
120927 10:46:16 InnoDB: 1.1.8 started; log sequence number 57665645675
120927 10:46:16 [Note] Event Scheduler: Loaded 0 events
120927 10:46:16 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.21-cll'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL) by Atomicorp

Eu nunca tive que tentar decifrar um arquivo de log do MySQL com falha.

Estou usando a versão: 5.5.21-cll MySQL Community Server (GPL) da Atomicorp

Alguma ideia de por onde devo começar?

ATUALIZAÇÃO: Por recomendação de @Michael-sqlbot, puxei o syslog e encontrei isto:

Sep 27 10:20:58 ip-97-74-197-181 kernel: pcscd invoked oom-killer: gfp_mask=0xd0, order=0, oomkilladj=0
Sep 27 10:21:00 ip-97-74-197-181 kernel:
Sep 27 10:21:00 ip-97-74-197-181 kernel: Call Trace:
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff800c9f35>] out_of_memory+0x8e/0x2f3
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff8002dfc7>] __wake_up+0x38/0x4f
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff8000f67d>] __alloc_pages+0x27f/0x308
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff80017a84>] cache_grow+0x139/0x3c7
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff8005be28>] cache_alloc_refill+0x138/0x188
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff8000ad2e>] kmem_cache_alloc+0x6c/0x76
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff80012877>] getname+0x25/0x1c2
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff8001a04b>] do_sys_open+0x17/0xbe
Sep 27 10:21:00 ip-97-74-197-181 kernel:  [<ffffffff8005d28d>] tracesys+0xd5/0xe0
Sep 27 10:21:00 ip-97-74-197-181 kernel:
Sep 27 10:21:11 ip-97-74-197-181 kernel: Mem-info:
Sep 27 10:21:20 ip-97-74-197-181 kernel: Node 0 DMA per-cpu:
Sep 27 10:21:27 ip-97-74-197-181 kernel: cpu 0 hot: high 0, batch 1 used:0
Sep 27 10:21:38 ip-97-74-197-181 kernel: cpu 0 cold: high 0, batch 1 used:0
Sep 27 10:21:49 ip-97-74-197-181 kernel: cpu 1 hot: high 0, batch 1 used:0
Sep 27 10:21:49 ip-97-74-197-181 kernel: cpu 1 cold: high 0, batch 1 used:0
Sep 27 10:21:49 ip-97-74-197-181 kernel: cpu 2 hot: high 0, batch 1 used:0
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 2 cold: high 0, batch 1 used:0
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 3 hot: high 0, batch 1 used:0
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 3 cold: high 0, batch 1 used:0
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 DMA32 per-cpu:
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 0 hot: high 186, batch 31 used:60
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 0 cold: high 62, batch 15 used:57
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 1 hot: high 186, batch 31 used:139
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 1 cold: high 62, batch 15 used:61
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 2 hot: high 186, batch 31 used:47
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 2 cold: high 62, batch 15 used:57
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 3 hot: high 186, batch 31 used:52
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 3 cold: high 62, batch 15 used:53
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 Normal per-cpu:
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 0 hot: high 186, batch 31 used:29
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 0 cold: high 62, batch 15 used:17
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 1 hot: high 186, batch 31 used:178
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 1 cold: high 62, batch 15 used:52
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 2 hot: high 186, batch 31 used:22
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 2 cold: high 62, batch 15 used:59
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 3 hot: high 186, batch 31 used:71
Sep 27 10:21:52 ip-97-74-197-181 kernel: cpu 3 cold: high 62, batch 15 used:54
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 HighMem per-cpu: empty
Sep 27 10:21:52 ip-97-74-197-181 kernel: Free pages:       41728kB (0kB HighMem)
Sep 27 10:21:52 ip-97-74-197-181 kernel: Active:1031140 inactive:970428 dirty:0 writeback:0 unstable:0 free:10432 slab:4277 mapped-file:801 mapped-anon:1993003 pagetables:11636
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 DMA free:10096kB min:12kB low:12kB high:16kB active:0kB inactive:0kB present:9700kB pages_scanned:0 all_unreclaimable? yes
Sep 27 10:21:52 ip-97-74-197-181 kernel: lowmem_reserve[]: 0 2965 8015 8015
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 DMA32 free:24424kB min:4236kB low:5292kB high:6352kB active:1544164kB inactive:1428756kB present:3037024kB pages_scanned:7185900 all_unreclaimable? yes
Sep 27 10:21:52 ip-97-74-197-181 kernel: lowmem_reserve[]: 0 0 5050 5050
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 Normal free:7208kB min:7212kB low:9012kB high:10816kB active:2580172kB inactive:2453052kB present:5171200kB pages_scanned:12935183 all_unreclaimable? yes
Sep 27 10:21:52 ip-97-74-197-181 kernel: lowmem_reserve[]: 0 0 0 0
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
Sep 27 10:21:52 ip-97-74-197-181 kernel: lowmem_reserve[]: 0 0 0 0
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 DMA: 6*4kB 3*8kB 4*16kB 4*32kB 4*64kB 5*128kB 1*256kB 1*512kB 0*1024kB 0*2048kB 2*4096kB = 10096kB
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 DMA32: 24*4kB 3*8kB 1*16kB 1*32kB 1*64kB 3*128kB 1*256kB 0*512kB 1*1024kB 1*2048kB 5*4096kB = 24424kB
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 Normal: 0*4kB 13*8kB 8*16kB 0*32kB 19*64kB 1*128kB 2*256kB 0*512kB 1*1024kB 0*2048kB 1*4096kB = 7208kB
Sep 27 10:21:52 ip-97-74-197-181 kernel: Node 0 HighMem: empty
Sep 27 10:21:52 ip-97-74-197-181 kernel: 9391 pagecache pages
Sep 27 10:21:52 ip-97-74-197-181 kernel: Swap cache: add 5745145, delete 5744809, find 81873079/82270945, race 0+63
Sep 27 10:21:52 ip-97-74-197-181 kernel: Free swap  = 0kB
Sep 27 10:21:52 ip-97-74-197-181 kernel: Total swap = 2096472kB
Sep 27 10:21:52 ip-97-74-197-181 kernel: Free swap:            0kB
Sep 27 10:21:52 ip-97-74-197-181 kernel: 2359296 pages of RAM
Sep 27 10:21:52 ip-97-74-197-181 kernel: 324458 reserved pages
Sep 27 10:21:52 ip-97-74-197-181 kernel: 21388 pages shared
Sep 27 10:21:52 ip-97-74-197-181 kernel: 336 pages swap cached
Sep 27 10:21:52 ip-97-74-197-181 kernel: Out of memory: Killed process 3044, UID 27, (mysqld).
mysql innodb
  • 4 respostas
  • 16261 Views
Martin Hope
Patrick
Asked: 2012-02-12 14:09:44 +0800 CST

Como atualizar mysql my.cnf sem obter erro?

  • 2

Atualizei o my.confarquivo MySQL e reiniciei meu servidor sem problemas.

Assim que tentei acessar uma mesa recebi o erro

mysql #1033 - Incorrect information in file: 

Reverti o my.cnfarquivo de volta ao original e o servidor está funcionando corretamente.

Estou procurando atualizar algumas das configurações do innodb:

innodb_buffer_pool_size
innodb_additional_mem_pool_size
innodb_log_file_size
innodb_log_buffer_size

Acho que estou vendo que tenho que atualizar o my.cnfarquivo antes de criar qualquer banco de dados no servidor, mas isso não parece certo.

Existe uma maneira de atualizar o my.cnfarquivo após a criação de um banco de dados no servidor?

CentOS 5.6

MySQL 5.0.77

Original:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Novo:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# This is my configuration!
innodb_buffer_pool_size=4G
innodb_additional_mem_pool_size=20M

innodb_log_file_size=1G
innodb_log_buffer_size=8M

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
mysql innodb
  • 1 respostas
  • 3443 Views
Martin Hope
Patrick
Asked: 2011-03-18 12:56:41 +0800 CST

No MySQL, a ordem das colunas em uma cláusula WHERE afeta o desempenho da consulta?

  • 47

Estou tendo problemas de desempenho em determinadas consultas de banco de dados que têm grandes conjuntos de resultados possíveis.

A consulta em questão, tenho três ANDs na cláusula WHERE

A ordem das cláusulas importa?

Como se eu colocasse a cláusula ASI_EVENT_TIME primeiro (já que isso removeria a maioria dos resultados de qualquer uma das cláusulas.

Isso melhorará o tempo de execução da consulta?

CONSULTA:

SELECT DISTINCT  activity_seismo_info.* 
FROM `activity_seismo_info` 
WHERE 
    activity_seismo_info.ASI_ACTIVITY_ID IS NOT NULL  AND 
    activity_seismo_info.ASI_SEISMO_ID IN (43,44,...,259) AND 
    (
        activity_seismo_info.ASI_EVENT_TIME>='2011-03-10 00:00:00' AND 
        activity_seismo_info.ASI_EVENT_TIME<='2011-03-17 23:59:59'
    ) 

ORDER BY activity_seismo_info.ASI_EVENT_TIME DESC

EXPLIQUE da consulta:

+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+ 
| id | select_type | table   | type  | possible_keys             | key          | key_len | ref  | rows  | Extra                       |
+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+ 
|  1 | SIMPLE      | act...o | range | act...o_FI_1,act...o_FI_2 | act...o_FI_1 | 5       | NULL | 65412 | Using where; Using filesort |
+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+

Usando:

PHP 5.2

MySQL 5.0.51a-3ubuntu5.4

Propulsão 1.3

Symfony 1.2.5

mysql performance
  • 6 respostas
  • 40674 Views
Martin Hope
Patrick
Asked: 2011-03-04 12:37:00 +0800 CST

Quanto tempo é "muito longo" para o MySQL Connections dormir?

  • 41

Entrei no meu servidor para verificar o status do banco de dados e notei SHOW PROCESSLIST;que há um grande número de conexões adormecidas que são muito antigas.

insira a descrição da imagem aqui Qual deve ser a duração do limite de tempo de conexão antes que a conexão seja encerrada?

Como defino o limite de tempo no MySQL 5.0.51a-3ubuntu5.4?

Observação:

Estou usando PHP 5.2.xe framework symfony 1.2.

mysql mysql-5
  • 1 respostas
  • 134519 Views
Martin Hope
Patrick
Asked: 2011-02-23 08:50:55 +0800 CST

Consulta MySQL INNODB SELECT suspensa na cópia para a tabela tmp

  • 6

Eu tenho uma consulta que está suspensa (aparentemente) aleatoriamente em uma consulta específica. A maioria dos usuários do meu site não tem problemas quando essa consulta é executada, mas alguns usuários estão tendo problemas de tempo limite no site e, quando eu verifico processlist, ele fica travado copying to tmp table.

Eu acredito que o disco rígido simplesmente não está acompanhando, o que está causando o travamento na cópia para a tabela tmp.

Não acredito que possa otimizar a consulta com mais eficiência. Eu queria saber se eu poderia configurar o segundo disco rígido do meu servidor como o armazenamento da tabela temporária para distribuir parte da carga colocada no servidor.

The query:
SELECT DISTINCT  
    activity_seismo_info.ID, 
    activity_seismo_info.CREATED_AT, 
    activity_seismo_info.UPDATED_AT, 
    ....    
    activity_seismo_info.ASI_EXTRA_5, 
    seismo.ID, 
    ....    
    seismo.SEISMO_NOTES 

FROM `activity_seismo_info` 
    JOIN activity_info ON (activity_seismo_info.ASI_ACTIVITY_ID=activity_info.ID) 
    JOIN location ON (activity_info.ACTIVITY_LOCATION_ID=location.ID) 
    LEFT JOIN seismo ON (activity_seismo_info.ASI_SEISMO_ID=seismo.ID) 

WHERE location.ID='193' 

ORDER BY activity_info.ACTIVITY_EVENT_TIME DESC LIMIT 30

Estou em um P4 com 2 GB de RAM e dois discos rígidos (o segundo disco rígido não é usado)

PHP5.2

MySQL 5.0.51a-3ubuntu5.4

Aplicação symfony 1.2 com Propel

ATUALIZAR

graças à sugestão do @DTest, descobri que minha consulta estava retornando todas as linhas da tabela antes de executar um limite no resultado. Mas, para referência futura, existe uma maneira de configurar o MySQL para usar um segundo disco rígido como a unidade de 'zero' para tabelas temporárias?

mysql performance
  • 1 respostas
  • 5232 Views
Martin Hope
Patrick
Asked: 2011-01-28 06:59:04 +0800 CST

Armazenando um grande número de entradas de tamanho pequeno no MySQL

  • 3

Eu tenho um banco de dados que armazena leituras de vários medidores. Dependendo do medidor, pode haver dados para esse medidor a cada 1-5 minutos com várias leituras (ou seja, estação meteorológica e armazena 5 leituras diferentes).

Atualmente armazeno os dados por data. Eu agrupo tudo para um medidor específico para uma única data e armazeno como xml em uma coluna de texto.

Seria mais eficiente armazenar esses dados como linhas individuais?

Estou tentando decidir qual é a solução mais inteligente a longo prazo (ou seja, menos linhas com mais dados por linha ou muito mais linhas, cada uma sendo menor).

É um ambiente pesado de leitura.

EDITAR:

Por 'eficiente', estou mais preocupado com a velocidade e o uso de recursos (se eu retirar um ano de dados, o que seria menos intensivo em processador/memória).

Eu quase exclusivamente uso esses dados para fazer gráficos para clientes. O número de leituras por timestamp é variável, de 1 a 6 leituras.

O banco de dados é atualmente um INNODB.

EDIÇÃO 2:

Estou procurando mais para manter os dados no MySQL para facilitar o acesso/atualização.

A resposta que eu estava procurando mais era se seria mais inteligente salvar cada registro de data e hora individual (que pode ter várias leituras) em uma linha individual ou agrupar vários registros de data e hora (ou seja, até o valor de um dia) em uma única linha.

Obrigado

mysql mysql-5
  • 3 respostas
  • 930 Views
Martin Hope
Patrick
Asked: 2011-01-26 18:51:31 +0800 CST

Max_allowed_packet alterado e ainda recebendo o erro 'Pacote muito grande'

  • 8

Eu uso o mysqldump para criar um arquivo simples para fins de backup. Usei esse arquivo para recriar o banco de dados em um servidor alternativo. Executei o processo de importação por meio do ssh na linha de comando e recebi vários Packet too Largeerros.

Reiniciei o mysql com um max_allowed_packet muito maior (ou seja, 1000M) e ainda recebi o erro. Eu até tentei definir o max_allowed_packet no arquivo de importação, ainda recebi o erro.

Existe uma maneira de garantir que o max_allowed_packet esteja definido e/ou use o mysqldump que criará um arquivo que não cause esse problema?

Para referência:

o arquivo mysqldump descompactado é ~ 2 GB

tipo de banco de dados é INNODB

mysql backup
  • 3 respostas
  • 8568 Views
Martin Hope
Patrick
Asked: 2011-01-06 08:28:34 +0800 CST

credenciais de login diferentes com base no usuário

  • 6

Eu executo um aplicativo web PHP symfony-framework para minha empresa e ele usa um único login de banco de dados para todas as conexões, seja o usuário um administrador ou um cliente.

Eu sei que os sistemas de segurança mais altos geralmente usam logins diferentes para diferentes níveis de usuários.

Independentemente de usar ou não uma estrutura, esse é um recurso de segurança que devo usar?

Importa se o aplicativo é baseado na Web ou na intranet?

Para esclarecer: devo me preocupar em criar um plug-in para o symfony para implementar vários logins de banco de dados e devo fazer isso para quaisquer outros aplicativos que eu criar que não sejam baseados em uma estrutura?

Caso você esteja se perguntando, estou usando PHP5 e MySQL.

mysql security
  • 2 respostas
  • 477 Views
Martin Hope
Patrick
Asked: 2011-01-04 13:13:48 +0800 CST

Como posso otimizar um mysqldump de um banco de dados grande?

  • 202

Eu tenho um aplicativo symfony com um banco de dados InnoDB que é ~ 2GB com 57 tabelas. A maior parte do tamanho do banco de dados reside em uma única tabela (~1,2 GB). Atualmente, estou usando o mysqldump para fazer backup do banco de dados todas as noites.

Devido à minha conexão comcast, muitas vezes, se eu estiver executando um despejo manualmente, minha conexão com o servidor atingirá o tempo limite antes que o despejo seja concluído, fazendo com que eu tenha que executá-lo novamente. [Atualmente eu executo um cron que faz o dump todas as noites, isso é apenas para dumps que eu executo manualmente.]

Existe uma maneira de acelerar os despejos para o problema de tempo limite de conexão, mas também para limitar o tempo que o servidor está ocupado com esse processo?

BTW, atualmente estou trabalhando na redução do tamanho do banco de dados geral para resolver esse problema.

mysql performance
  • 7 respostas
  • 273455 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve