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 / dba / 问题

All perguntas(dba)

Martin Hope
Abdul Jabbar
Asked: 2024-03-27 13:12:26 +0800 CST

Como o Whatsapp Search/Index criptografou bate-papos especialmente indexadosDB, criptografia pesquisável

  • 5

Nossa equipe desenvolveu um aplicativo híbrido baseado no IndexedDBsuporte a plataformas cruzadas. Este aplicativo agora possui um recurso de bate-papo e queremos armazenar bate-papos para legibilidade offline. Mas, como regra geral, podemos armazenar metadados de bate-papos em texto simples, mas não o conteúdo real do texto da mensagem de bate-papo. Então, decidimos criptografá-los.

Problema: Agora o problema surge quando o usuário deseja pesquisar uma mensagem que contenha alguma palavra específica, pode ser qualquer idioma ou texto.

Tentamos pesquisar o que Whatsappimplementa essa funcionalidade e encontramos vários artigos como https://www.group-ib.com/blog/whatsapp-forensic-artifacts/ e alguns outros, mas mostra para aplicativos nativos, sqlitebancos de dados (msgstore.db , wa.db etc) na pasta raiz não são criptografados nem mesmo um único campo. Embora existam alguns bancos de dados criptografados msgstore.db.cryptxx, a maioria deles são backups.

Questões

  1. Devemos presumir que o Whatsapp apenas criptografa mensagens enquanto envia e recebe, não as armazena?

  2. O WhatsApp armazena mensagens em texto simples na IndexedDBweb? Não encontramos nenhum, exceto metadados .

  3. Se o Whatsapp criptografa todas as mensagens, seja sqliteIndexedDB para web, como ele realiza a busca por mensagens?

  4. Que opções temos? Como devemos armazenar mensagens no IndexedDB que podem ser criptografadas e ainda pesquisáveis?

Há uma pergunta relacionada a isso , mas não tem a resposta adequada nem é perguntada sobre o IndexedDB, que pode ser facilmente visualizado pelos usuários finais.

index
  • 1 respostas
  • 25 Views
Martin Hope
tdhso
Asked: 2024-03-27 03:25:39 +0800 CST

Propagação de gravação do Cassandra para DCs remotos

  • 5

Quando uma gravação no Cassandra usa LOCAL_QUORUM, o nó coordenador no controlador de domínio de origem é o único propagador para os controladores de domínio remotos ou outros nós/controladores de domínio podem compartilhar essa função se, digamos, algo acontecer ao coordenador ou à sua conectividade?

cassandra
  • 1 respostas
  • 15 Views
Martin Hope
Макс Самшит
Asked: 2024-03-25 02:00:35 +0800 CST

Erro de agendador sem rendimento no SQL Server 2019 no Docker com CDC habilitado

  • 6
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migrado no mês passado .

Implantei uma instância do SQL Server 2019 no Kubernetes e habilitei o Change Data Capture (CDC) no SQL Server.

Periodicamente, encontro um erro “Non-yielding Scheduler” nos logs, após o qual o banco de dados começa a consumir todos os recursos de CPU alocados e para de responder às consultas.

Não há sinais de escassez de recursos até que o problema ocorra e o banco de dados não esteja sob carga pesada, pois esta é uma configuração de desenvolvimento. Tanto o Kubernetes quanto o banco de dados são armazenados em dois SSDs no Raid, então duvido que os limites de leitura e gravação sejam a causa.

Antes de ativar o CDC, o banco de dados funcionava sem problemas. Imagem: 2019-CU25-ubuntu-20.04 (env: PID - Desenvolvedor, AGENT_ENABLED - true) Logs:

 getspinlock pre-Sleep(): spid 0, 1790 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 1685 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 1467 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 3232 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 3124 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 2904 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 4531 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 4276 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 3827 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 692 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 691 yields on lock type "XDESMGR" (adr 00000010029316C0)
 2024-03-23 14:53:13.66 Server      Using 'dbghelp.dll' version '4.0.5' 
 getspinlock pre-Sleep(): spid 0, 667 yields on lock type "XDESMGR" (adr 00000010029316C0)
 2024-03-23 14:53:14.15 Server      ***Unable to get thread context for spid 0 
 2024-03-23 14:53:14.16 Server      * ******************************************************************************* 
 2024-03-23 14:53:14.16 Server      * 
 2024-03-23 14:53:14.16 Server      * BEGIN STACK DUMP: 
 2024-03-23 14:53:14.16 Server      *   03/23/24 14:53:14 spid 468 
 2024-03-23 14:53:14.16 Server      * 
 2024-03-23 14:53:14.16 Server      * Non-yielding Scheduler 
 2024-03-23 14:53:14.17 Server      * 

 2024-03-23 14:53:14.17 Server      * ******************************************************************************* 
 2024-03-23 14:53:14.17 Server      Stack Signature for the dump is 0x0000000000000014 
 getspinlock pre-Sleep(): spid 0, 5171 yields on lock type "XDESMGR" (adr 00000010029316C0)
 2024-03-23 14:53:20.87 Server      External dump process return code 0x20000001. 
 External dump process returned no errors.  
 2024-03-23 14:53:20.88 Server      Process 0:0:0 (0x570) Worker 0x000000101E398160 appears to be non-yielding on Scheduler 0. Thread creation time: 13355613019271. Approx Thread CPU Used: kernel 100 ms, user 38760 ms. Process Utilization 12%. System Idle 0%. Interval: 70011 ms. 
 getspinlock pre-Sleep(): spid 0, 4854 yields on lock type "XDESMGR" (adr 00000010029316C0)
 2024-03-23 14:53:25.96 Server      Process 0:0:0 (0x168) Worker 0x000000101A354160 appears to be non-yielding on Scheduler 15. Thread creation time: 13355563362779. Approx Thread CPU Used: kernel 0 ms, user 37360 ms. Process Utilization 12%. System Idle 0%. Interval: 77297 ms. 
 getspinlock pre-Sleep(): spid 0, 4403 yields on lock type "XDESMGR" (adr 00000010029316C0)
 2024-03-23 14:53:30.97 Server      Process 0:0:0 (0x88) Worker 0x00000010389FE160 appears to be non-yielding on Scheduler 9. Thread creation time: 13355657814870. Approx Thread CPU Used: kernel 70 ms, user 35910 ms. Process Utilization 12%. System Idle 0%. Interval: 77313 ms. 
 getspinlock pre-Sleep(): spid 0, 1243 yields on lock type "XDESMGR" (adr 00000010029316C0)
 getspinlock pre-Sleep(): spid 0, 1246 yields on lock type "XDESMGR" (adr 00000010029316C0)
 .....

Como posso resolver ou rastrear a causa desse problema?

O que tentei: Tentei resolver o erro “Agendador sem rendimento” aumentando os limites de recursos e definindo a quantidade mínima e máxima de memória que o SQL Server pode consumir. Apesar destes ajustes, o problema persistiu sem qualquer melhoria.

O que eu esperava: esperava que ajustar os limites de recursos e as configurações de consumo de memória do SQL Server aliviasse o problema, permitindo que o banco de dados operasse sem acionar o erro “Non-yielding Scheduler” e o subsequente esgotamento dos recursos da CPU.

Microsoft SQL Server 2019 (RTM-CU25) (KB5033688) - 15.0.4355.3 (X64) 30 de janeiro de 2024 17:02:22

sql-server
  • 1 respostas
  • 50 Views
Martin Hope
George
Asked: 2024-03-26 22:51:59 +0800 CST

descartar banco de dados trava com "Aguardando bloqueio de metadados da tabela" no MySQL8 RDS na AWS

  • 5

Temos uma tabela grande em um banco de dados na qual um usuário tentou executar DELETE * FROM table. Ele ainda estava funcionando no dia seguinte, então encerramos o processo.

Tentei renomear, eliminar e truncar a tabela afetada e até todo o banco de dados, mas qualquer consulta acaba Waiting for table metadata lock. Posso consultar na tabela.

Todas as informações que encontro sugerem que haverá um processo em algum lugar que ainda está em andamento, mas reiniciei o servidor e o problema persiste.

É um servidor temporário com vários outros bancos de dados, por isso está razoavelmente ocupado, mas não vejo problemas em outros lugares e posso adicionar e descartar outros bancos de dados. É apenas esse banco de dados que parece ter o problema.

Depois de ativar o esquema de desempenho, vejo algumas entradas na performance_schema.metadata_lockstabela como a seguir:

tabela de metadata_locks

Não tenho certeza do que se dictionary_impl.cc:434refere, mas não vejo nada INFORMATION_SCHEMA.PROCESSLISTrelacionado a isso.

As tabelas referenciadas na tabela de bloqueios são todas do banco de dados que estou tentando eliminar.

mysql
  • 1 respostas
  • 20 Views
Martin Hope
Mudream
Asked: 2024-03-26 18:24:38 +0800 CST

Como altero os nós iniciais em um cluster Cassandra?

  • 5

Considere o seguinte cenário: um cluster que consiste em 6 nós, sendo 3 designados como nós iniciais:

  • node1: nó semente
  • node2: nó semente
  • node3: nó semente
  • node4: nó não semente
  • node5: nó não semente
  • node6: nó não semente

O objetivo é alterar os nós iniciais de [node1, node2, node3] para [node4, node5, node6].

Para conseguir isso, foram realizadas as seguintes etapas:

  1. Modifique a configuração para designar nós [node4, node5, node6] como nós iniciais.
  2. Reinicie o serviço em cada nó, um de cada vez.

Esta operação foi bem-sucedida e não houve perda de dados durante a reinicialização do serviço.

Porém não tenho certeza se esta operação está correta, pois não é mencionada nos documentos.

cassandra
  • 1 respostas
  • 29 Views
Martin Hope
Tomas F.
Asked: 2024-03-26 17:48:42 +0800 CST

A função Pageinspect bt_metap diz 'o índice não é um índice btree'

  • 7

Desejo examinar o conteúdo de um índice btree.

No entanto, cada uma das funções btree do pageinspect diz que "channel_status_pkey_index" não é um índice btree

A tabela fica assim:

CREATE TABLE public.channel_status (
    partition_id int2 NOT NULL,
    game public."game" NOT NULL,
    channel_id int4 NOT NULL,
    platform_partition int4 NOT NULL,
    enabled bool NOT NULL,
    modified timestamptz NOT NULL,
    CONSTRAINT channel_status_pkey PRIMARY KEY (partition_id, game, channel_id, platform_partition)
)
PARTITION BY LIST (partition_id);

Ele cria automaticamente o índice btree na chave primária. Eu também criei um índice explícito

CREATE UNIQUE INDEX channel_status_pkey_index ON ONLY public.channel_status USING btree (partition_id, game, channel_id, platform_partition)

Mas se eu executar qualquer função btree, ela falhará, não importa se eu uso channel_status_pkeyor channel_status_pkey_index, com `public'. prefixo ou sem:

#  SELECT * FROM bt_metap('public.channel_status_pkey_index');
ERROR:  "channel_status_pkey_index" is not a btree index

Você tem uma ideia de por que o postgres afirma que o índice btree não é um índice btree?

postgresql
  • 1 respostas
  • 48 Views
Martin Hope
odyssey
Asked: 2024-03-26 03:09:07 +0800 CST

Paginação eficiente no Postgresql (paginação de conjunto de chaves)

  • 6

Estou trabalhando na implementação da paginação para um banco de dados PostgreSQL no qual tenho uma tabela que armazena usuários para meu aplicativo. Eu tenho uma consulta que visa buscar a próxima página de usuários com base em seu nome próprio e carimbo de data/hora de criação. No entanto, estou encontrando algumas dificuldades e gostaria de receber alguma orientação.

Tipos para as colunas: userId (string e armazena uuidv5), userForename (string), userCreatedAt (timestamp)

Aqui está a consulta que estou usando para buscar a próxima página: é apenas um espaço reservado

SELECT "userId", "userForename", "userCreatedAt"
FROM iatropolis."User"
WHERE
    LOWER("userForename") > 'aaliyah'
    OR (LOWER("userForename") = 'aaliyah' AND
     "userCreatedAt" > TIMESTAMP '2024-03-25 14:50:39.481197')
ORDER BY "userForename" ASC, "userCreatedAt" ASC
LIMIT <limit>;

O objetivo desta consulta é recuperar o primeiro usuário após 'aaliyah' em ordem alfabética e, se houver vários usuários com o mesmo nome, selecionar aquele com carimbo de data e hora de criação posterior a '2024-03-25 14:50:39.481197' .

No entanto, não tenho certeza se esta consulta está atingindo corretamente a paginação desejada. Embora eu tenha testado e produzido resultados corretos, não sei se ele se comportará conforme desejado no longo prazo (não tenho certeza se estou faltando alguma coisa).

Também tentei ir para a página anterior comprar criando uma consulta semelhante.

SELECT "userId", "userForename", "userCreatedAt"
FROM iatropolis."User"
WHERE
    LOWER("userForename") < 'zula' 
    OR (LOWER("userForename") = 'zula' AND
     "userCreatedAt" < TIMESTAMP '2024-03-25 14:51:53.062856')
ORDER BY "userForename" DESC, "userCreatedAt" DESC
LIMIT <limit>;

Estes são alguns dados aleatórios ascendentes com os quais estou trabalhando:

ID do usuário nome_do_usuário userCreatedAt
38ee48f9-6d79-5690-9e51-df4b1cc5d428 Aaliyah 25/03/2024 14:50:39.481197
ba2c1a86-280d-573f-ad35-ed1d023e3e5d Aaliyah 25/03/2024 14:51:35.52505
4f40dd7a-8f0f-54e4-bf14-3de3626bde67 Abagail 25/03/2024 19:27:10.985665
e7b68316-188d-509e-9fd3-7fc780986c71 Mosteiro 25/03/2024 17:45:43.584704
1084f33e-9183-501d-b1af-70d61f1479d7 Abigail 25/03/2024 19:27:29.720356
561e71fd-f04a-54d2-9864-2324e28cdfbd Abigail 25/03/2024 19:27:35.5478
ab5ad018-1866-50a4-8bf6-568f74988d21 Abigail 25/03/2024 17:46:35.309003
596e13f2-e413-5b50-bdfb-9e68f0edf3db Abdiel 25/03/2024 17:47:08.576102
d0d5bff9-f782-5451-bda4-e4d4a3e49f04 Abdiel 25/03/2024 14:51:24.257638
33a02ded-b354-5a6b-b506-cad3595d19be Abdul 25/03/2024 17:46:49.809666
6e1f68ff-f799-511e-ba91-83b35349e652 Abdul 25/03/2024 14:51:02.533247
f67226da-a560-5913-9770-c23499046dc5 Abe 25/03/2024 14:49:34.342507
4e345a84-144d-55e2-a568-ce2064cb91fc Abigale 25/03/2024 19:26:32.349998
ecab4167-8275-5c45-a6ce-5f616edeb60b Abigale 25/03/2024 19:26:24.406462
3689dc88-b57c-572b-90cd-3bd0c4603656 Abigayle 25/03/2024 14:50:41.608976
db26cecb-0532-5cd4-b45e-04c14ce48b97 Abigayle 25/03/2024 19:26:54.081197
03d9e144-ba2e-5d08-b8bc-abaa42b59848 Abner 25/03/2024 17:47:12.313267
e7d3fd8b-9187-5e78-8178-93eef85c3edc Abner 25/03/2024 19:27:35.016205
3a0c5db0-a19b-57b2-be99-6c0e0d33fb4c adadadFN 22/03/2024 11:33:03.466138
daada509-45b3-58e8-920f-2441395af0f8 Adalberto 25/03/2024 17:46:31.150524
dd3781a8-45ae-5ecb-9d5d-b4230347b0d8 Adalina 25/03/2024 17:46:05.821796
c2122ddb-fd31-59ea-b5db-3e8696f0a2fc Adán 25/03/2024 14:51:06.880816
19ac3589-47ac-53ba-8e8c-c1537babbe97 Adie 25/03/2024 17:47:04.303399
c61c8d3a-02b7-5db3-8b84-dba2fbf522b8 Adie 25/03/2024 17:46:35.627732
6800cc09-113a-5383-a9ec-463bfeb1f3aa Addison 25/03/2024 17:46:24.314788

Estes são alguns dados aleatórios descendentes com os quais estou trabalhando:

ID do usuário nome_do_usuário userCreatedAt
d64ce86e-1bf4-56d8-86dc-e0ffd9bae972 Zula 25/03/2024 14:51:53.062856
e6f98b6c-ae16-58e9-ba3a-979dac63058d Zora 25/03/2024 17:46:15.697886
951b1493-0f86-5741-8b3d-5b7db7466f25 Zora 25/03/2024 14:51:38.315643
a2c4455e-5333-57ea-9e7e-6a8ca03a7cf4 Zita 25/03/2024 19:26:44.119388
d00c4951-de6a-5290-b956-13bf3b3e11eb Zita 25/03/2024 14:51:28.445206
390b6dae-b47e-57d7-8a7f-10a002d9b3a3 Sião 25/03/2024 14:50:18.578468
6f6371a0-b5bd-5839-aed2-81e8b8e0bff7 Zeta 25/03/2024 19:27:22.998847
4750df40-ffda-55e2-b26b-7c0c2ecf87e5 Zeta 25/03/2024 19:26:01.682206
14d137e7-83aa-5463-b47e-1a2376b53376 Zelma 25/03/2024 14:50:15.690687
0defcb46-486c-5273-9c81-e553500de614 Zelma 25/03/2024 14:49:32.577772
1a28a48b-bc3b-5f84-bbae-1ac0839bf311 Zacarias 25/03/2024 19:26:04.410123
574bf44e-2604-5ff1-95a9-164287d3c880 Zane 25/03/2024 19:27:15.455109
e7b0e413-2eff-5240-8c18-321664a42416 Zander 25/03/2024 19:26:45.864325
2a737734-2c45-54c0-b911-315c8d333884 Zakary 25/03/2024 14:50:34.264419
782ddfaa-df67-50e3-841d-fa21b525e75c Zackery 25/03/2024 17:47:17.542445
d24c75f2-7152-50aa-96ef-3a2d3847f1d3 Zackary 25/03/2024 17:46:58.029806
c2d6d8c5-3891-57fb-bbea-57e22cb51da4 Zack 25/03/2024 17:46:27.203011
3333d2de-8028-5f00-8e4c-db821e8fe1a5 Zachary 25/03/2024 17:46:25.890929
f11dfc68-78f1-5290-b203-9e04449c0538 Zachary 25/03/2024 14:50:27.447767
d88c05bc-5fe4-5597-94b5-ca29c99a2df4 Zacarias 25/03/2024 17:46:52.98815
cf8e2a99-e308-53ae-8908-8c2ff0188143 Zacarias 25/03/2024 14:51:47.465403
da1ed730-9965-56c2-9317-e1726f172afc Ivone 25/03/2024 19:26:36.714501
97a4213a-5fd5-5d0d-a860-567295ab9a23 Ivone 25/03/2024 14:51:20.7755
41ce8c6b-5cca-57b9-a74b-d9fbf8f32ade Ivete 25/03/2024 14:50:18.973821
9f47693b-bcfd-5e2c-b92f-56aefb79ce03 Yoshiko 25/03/2024 19:27:33.647082

Minha pergunta é: alguém que conhece SQL corretamente e o usa há anos e anos, concordaria que essa paginação de conjunto de chaves foi implementada corretamente? Além disso, para o meu caso, poder ordenar as colunas é muito importante, por isso incluí o userForename nas consultas. Caso minhas dúvidas não estejam corretas, alguém poderia me mostrar como fazê-las corretamente? Além disso, estou aberto a explorar abordagens alternativas se existirem soluções mais eficientes disponíveis.

postgresql
  • 1 respostas
  • 41 Views
Martin Hope
Stu
Asked: 2024-03-26 00:38:28 +0800 CST

Cassandra não replicará dados para o novo DC

  • 5

Tenho uma configuração Cassandra 3.11.4 de nó único em um datacenter.

Sei que isso é horrível e errado, então estou tentando consertar movendo os dados para uma configuração de 3 nós em outro datacenter.

Tirar um snapshot e copiá-lo significa muito tempo de inatividade, então estou tentando adicionar os 3 novos nós ao cluster e fazer com que o Cassandra replique os dados.

A estratégia para meu keyspace de usuário, bem como system_distributed, system_authe system_tracesé esta: {'class': 'NetworkTopologyStrategy', '(newdc)': '3', '(olddc)': '1'}

Todos os nós se veem corretamente (1 no antigo datacenter, 3 no novo). Todos os nós relatam UN. Todos os nós relatam 100% de propriedade efetiva. Posso consultar meu keyspace de qualquer nó e obter dados de volta. Há uma pasta para meu keyspace de usuário na pasta de dados nos novos nós, mas ela está vazia. Os novos nós mostram <1MB de carga, o que parece um pouco baixo em comparação com os 600GB+ do original.

Quando eu faço isso nodetool rebuild -- (olddc)em qualquer um dos novos nós, ele retorna quase imediatamente sem nenhuma mensagem. Esse é o comando que todos me dizem que deve realmente mover os dados, mas nada feito.

Como faço para que os dados sejam realmente replicados?

No log, eu obtenho Some ranges in (...all my ranges...) are already available, skipping streaming these ranges. Disponível sim, eu realmente gostaria que o nó tivesse os dados!

nodetool statusmostra isso:

Datacenter: (new)
==================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  XX.XXX.X.110  775.49 KiB  256          100.0%            XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Unknown
UN  XX.XXX.X.109  929.93 KiB  256          100.0%            XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Unknown
UN  XX.XXX.X.108  710.75 KiB  256          100.0%            XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Unknown
Datacenter: (old)
=============================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  XXX.XX.X.233  676.17 GiB  256          100.0%            XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Unknown

Reiniciei o nó antigo e agora nodetool rebuildme aparece isso:

nodetool: Unable to find sufficient sources for streaming range (-1652045364361720276,-1613609154633147610] in keyspace system_distributed

Reiniciei todos os nós novamente e tudo parece estar funcionando agora.

Parte disso parece ser porque o "cluster" original tem apenas um nó. NÃO FAÇA ISSO , eles não estão brincando quando dizem que as coisas vão mal quando você faz isso. Não é só redundância, as coisas simplesmente não funcionam direito.

A segunda parte parece ser uma conexão não confiável entre nossos data centers (ambos externos). Só porque seu provedor diz que você tem uma conexão gigabit sólida não significa que você deve acreditar neles.

Se você está lendo isso, pode estar tendo o mesmo problema.

Se estiver, leia todos os comentários e siga as excelentes sugestões do Mario para descartar outros problemas. Se você ainda estiver tendo esses mesmos problemas estranhos e intermitentes, seus passos são:

  • Reinicie todos os nós (ambos os datacenters) em rápida sucessão.
  • Aguarde 24 horas.
  • Reinicie todos os nós (ambos os datacenters) em rápida sucessão.
  • Aguarde 4 horas.
  • Tente novamente.

(Não vou responder a essa pergunta porque a "solução" é essencialmente equivalente a uma dança da chuva e totalmente insatisfatória.)

cassandra
  • 1 respostas
  • 115 Views
Martin Hope
O. Jones
Asked: 2024-03-25 23:10:11 +0800 CST

COMPACT é um formato melhor para linhas de comprimento fixo do que DYNAMIC?

  • 8

No MySQL/MariaDB eu tenho esta tabela com linhas de comprimento fixo (sem VARCHAR, TEXT, etc)

CREATE TABLE trigram (
    id BIGINT(20) NOT NULL,
    trigram CHAR(3) NOT NULL COLLATE 'utf8mb4_general_ci',
    PRIMARY KEY (trigram, id) USING BTREE,
    INDEX id (id) USING BTREE
)
COLLATE='utf8mb4_general_ci' ENGINE=InnoDB ROW_FORMAT=COMPACT;

A tabela tem dezenas de megarows e obtém consultas de produção neste formato

SELECT id FROM trigram 
 WHERE trigram IN ('dba', 'ba.', 'a.s', '.st', 'sta', 'tac', 'ack')
 GROUP BY ID HAVING COUNT(*) = 7

bem como INSERTs e DELETE FROM trigram WHERE id = 12345consultas de manutenção. Os índices são apropriados para os padrões de consulta da tabela.

Esta tabela é um índice trigrama do homem pobre. (Este pobre homem não pode atualizar para o postgreSQL e usar seus índices trigramas integrados, suspiro.) A consulta de exemplo procura ids que contenham strings 'dba.stack'. É muito mais rápido do que content_column LIKE '%dba.stack%'quando a tabela de trigramas é construída.

Editar: O que quero dizer com "melhor"? Mais rápido, mais confiável, menos liberação do buffer pool na produção, menos carga de manutenção para usuários que não são DBA.

Pergunta: Devo definir esta tabela de linhas de comprimento fixo com ROW_FORMAT=COMPACT? Ou é necessário DYNAMIC? Percebi que ocupa um pouco menos espaço em disco com o COMPACT.

Pergunta: Alguma outra sugestão ou aspecto de desempenho com que se preocupar?

Meus usuários (usuários do software WordPress.org) estão principalmente no MariaDB 10.3+, mas alguns estão no MySQL 8 e alguns estão no MySQL 5.7-. Não preciso oferecer suporte a material legado do Antelope ou MyISAM.

Outra edição:

Minha IN()consulta faz uma varredura de intervalo em um conjunto de dados de teste com 180 mil linhas na tabela. A JOINtabela UNION sugerida em uma resposta faz um loop aninhado. A varredura de alcance leva menos tempo. Verdadeiro no MariaDB 10.11, MySQL 8 e MySQL 5.7. Pelo que vale a pena. Parece que a otimização do skip-scan funciona muito bem.

mysql
  • 5 respostas
  • 779 Views
Martin Hope
Peter
Asked: 2024-03-25 21:38:35 +0800 CST

postgres: carga do banco de dados por objeto acessado

  • 5

Quais tabelas, índices etc. obtiveram E/S nos últimos 5 minutos ou na última hora etc. e quanto em termos de linhas lidas/s, linhas escritas/s bytes-lidos/s bytes escritos/s?

É uma pergunta que gostaria de poder responder. De preferência, mesmo sabendo quanto foi atendido no buffer e quanto no disco.

Existe uma visão para ver isso? Alguma maneira de descobrir?

postgresql
  • 1 respostas
  • 25 Views
Prev
Próximo

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