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-3916

Alaa's questions

Martin Hope
Alaa
Asked: 2012-01-04 23:33:29 +0800 CST

obter coluna de muitas tabelas no mysql

  • 3

.Tenho muitas tabelas X1,X2,...Xn (elas podem exceder 75 tabelas) no banco de dados Mysql para representar departamentos de uma empresa muito grande.
toda tabela tem estrutura algo assim

desc X1;
+--------+-------------+------+-----+---------+-- -----+
| Campo | Tipo | Nulo | Chave | Padrão | Adicional |
+--------+-------------+------+-----+---------+-- -----+
| ReqF | int(11) | Sim | | NULO | |
| EmpName | varchar(32) | Sim | MUL | NULO | |

agora devo retornar todos os ReqF dos departamentos em que John trabalha. Sei que posso fazer isso juntando à esquerda assim

selecione X1.ReqF,X2.ReqF,...,Xn.ReqF FROM X1 junção esquerda X2 em (EmpName) junção esquerda .... junção esquerda Xn em X1.EmpName=Xn.EmpName onde X1.EmpName='John'

existe alguma maneira melhor de fazer isso e se precisarmos recuperar campos diferentes de tabelas (ex X1.ReqF1, X2.ReqF2 ou número aleatório de campos de tabelas como [SELECT X1.F1, X1.F2, X2.F3, ...])??

mysql join
  • 2 respostas
  • 901 Views
Martin Hope
Alaa
Asked: 2011-12-27 00:52:38 +0800 CST

tabela mysql tamanho muito grande embora não tenha muitos registros

  • 6

Eu tenho o site Drupal, uma das tabelas é cache_form. eu tenho um cron para

DELETE FROM cache_form where expire < UNIX_TIMESTAMP(NOW());

que funciona bem.

O tamanho cache_form.mydé de 4,9 G, embora eu tenha isso:

mysql>select sum(length(data))/1024/1204 from cache_form;

11.19144630 <b>==> 11 M

mysql>check table cache_form\G
Table: drupal.cache_form
Op: check
Msg_type: status
Msg_text: OK

mysql>select cid,length(data) from cache_form order by length(data) desc limit 1;
82373 ==> 80K

select * from information_schema.tables where table_name='cache_form'\G
*************************** 1. row ***************************
  TABLE_CATALOG: NULL
   TABLE_SCHEMA: drupal
     TABLE_NAME: cache_form
     TABLE_TYPE: BASE TABLE
         ENGINE: MyISAM
        VERSION: 10
     ROW_FORMAT: Dynamic
     TABLE_ROWS: 2681
 AVG_ROW_LENGTH: 4621
    DATA_LENGTH: 12391088 <b>==>11M</b>
MAX_DATA_LENGTH: 281474976710655
   INDEX_LENGTH: 177152
      DATA_FREE: 0
 AUTO_INCREMENT: NULL
    CREATE_TIME: 2011-07-11 19:07:38
    UPDATE_TIME: 2011-12-26 08:40:09
     CHECK_TIME: 2011-12-26 08:09:45
TABLE_COLLATION: utf8_general_ci
       CHECKSUM: NULL
 CREATE_OPTIONS: 
  TABLE_COMMENT: 

ja tentei consertar

mysql> repair table cache_form;
+-------------------+--------+----------+----------+
| Table             | Op     | Msg_type | Msg_text |
+-------------------+--------+----------+----------+
| drupal.cache_form | repair | status   | OK       |
+-------------------+--------+----------+----------+

então eu tenho o tamanho correto!!

Alguma ideia do que pode fazer com que o arquivo cache_form.myd fique com esse tamanho e a tabela de reparo finalmente removeu o espaço extra?

Obrigado

mysql myisam
  • 1 respostas
  • 8581 Views
Martin Hope
Alaa
Asked: 2011-12-15 01:20:45 +0800 CST

Como adicionar mecanismo federado após instalar o Mysql

  • 7

Eu tenho o Mysql 5.5.18
e nos motores de exibição:

mostrar motores;
+--------------------+---------+------------------ ------------------------------------------+------- -------+------+------------+
| Motor | Suporte | Comentário | Transações | XA | Pontos de salvamento |
+--------------------+---------+------------------ ------------------------------------------+------- -------+------+------------+
| InnoDB | PADRÃO | Suporta transações, bloqueio em nível de linha e chaves estrangeiras | SIM | SIM | SIM |
| PERFORMANCE_SCHEMA | SIM | Esquema de Desempenho | NÃO | NÃO | NÃO |
| MRG_MYISAM | SIM | Coleção de tabelas MyISAM idênticas | NÃO | NÃO | NÃO |
| CSV | SIM | mecanismo de armazenamento CSV | NÃO | NÃO | NÃO |
| MeuISAM | SIM | Mecanismo de armazenamento MyISAM | NÃO | NÃO | NÃO |
| MEMÓRIA | SIM | Baseado em hash, armazenado na memória, útil para tabelas temporárias | NÃO | NÃO | NÃO |
+--------------------+---------+------------------ ------------------------------------------+------- -------+------+------------+

como você vê motor federado não é um da lista. preciso habilitar!! alguma ideia de por que os mecanismos BLACKHOLE, FEDERATED e ARCHIVE estão faltando na lista? e como posso adicioná-los/habilitá -los?
EDIT
Eu tenho o Ubuntu 11.10 e instalei o mysql do ppa ... eu adicionei o seguinte ao /etc/apt/sources.list

deb http://ppa.launchpad.net/nathan-renniewaldock/ppa/ubuntu oneiric main
deb-src http://ppa.launchpad.net/nathan-renniewaldock/ppa/ubuntu oneiric main

Obrigado pela ajuda

mysql mysql-5.5
  • 5 respostas
  • 26772 Views
Martin Hope
Alaa
Asked: 2011-10-17 01:10:51 +0800 CST

Erro 'Mecanismo de tabela desconhecido 'InnoDB'' na consulta. depois de reiniciar o mysql

  • 6

Eu tenho mysql DB no servidor S1 (mysql versão 5.1.41-3ubuntu12.7-log).

Eu criei master-slave para este banco de dados no servidor S2 (mysql versão 5.1.54-1ubuntu4-log).

O banco de dados em S1 estava usando um arquivo de dados (ibdata).

Depois de despejar o banco de dados no S2, defino innodb_file_per_table=1. Isso fez com que cada tabela tivesse seu próprio arquivo ibd. agora tudo correu bem e sem problemas.

Depois de reiniciar o mysql no S2, enfrentei um problema ao receber este erro:
Error 'Unknown table engine 'InnoDB'' on query. Default database: MyDB e quando tento mostrar os mecanismos, recebo o seguinte:

mostrar motores;
+------------+---------+---------------------- --------------------------------------+----------- ---+------+------------+
| Motor | Suporte | Comentário | Transações | XA | Pontos de Salvamento |
+------------+---------+---------------------- --------------------------------------+----------- ---+------+------------+
| MyISAM | PADRÃO | Mecanismo padrão a partir do MySQL 3.23 com ótimo desempenho | NÃO | NÃO | NÃO |
| MRG_MYISAM | SIM | Coleção de tabelas MyISAM idênticas | NÃO | NÃO | NÃO |
| BURACO NEGRO | SIM | /dev/null mecanismo de armazenamento (qualquer coisa que você escreve desaparece) | NÃO | NÃO | NÃO |
| CSV | SIM | mecanismo de armazenamento CSV | NÃO | NÃO | NÃO |
| MEMÓRIA | SIM | Baseado em hash, armazenado na memória, útil para tabelas temporárias | NÃO | NÃO | NÃO |
| FEDERADO | NÃO | Mecanismo de armazenamento MySQL federado | NULO | NULO | NULO |
| ARQUIVO | SIM | Mecanismo de armazenamento de arquivo | NÃO | NÃO | NÃO |
+------------+---------+---------------------- --------------------------------------+----------- ---+------+------------+

InnoDB não está listado.

No log de erros, posso ver isso:

InnoDB: O banco de dados grava fisicamente o arquivo completo: aguarde...
InnoDB: Não é possível inicializar os arquivos de log criados porque
InnoDB: os arquivos de dados estão corrompidos ou novos arquivos de dados foram
InnoDB: criado quando o banco de dados foi iniciado anteriormente
InnoDB: tempo, mas o banco de dados não foi encerrado
InnoDB: normalmente depois disso.
111016 8:24:11 [ERRO] A função init do plug-in 'InnoDB' retornou um erro.
111016 8:24:11 [ERRO] Falha no registro do plug-in 'InnoDB' como STORAGE ENGINE.
111016 8:24:11 [Aviso] Nem --relay-log nem --relay-log-index foram usados; então a replicação pode quebrar quando este servidor MySQL agir como um escravo e tiver seu nome de host alterado!! Use '--relay-log=S2-relay-bin' para evitar esse problema.

Eu tentei excluir ib_logfiles, mas isso também não funcionou. se eu excluir ib_logfiles e arquivo ibdata, innodb retornará normalmente, mas não consigo acessar minhas tabelas innodb, ou seja. depois de deletar ibdata1 e reiniciar o mysql

artigo desc;
ERRO 1146 (42S02): Tabela 'MyDb.article' não existe

Minha configuração innodb em my.cnf é a seguinte:

innodb_file_per_table=1  
innodb_flush_method=O_DIRECT  
innodb_log_file_size=1G  
innodb_buffer_pool_size=4G  
innodb_data_file_path=ibdata1:10M:autoextend  
innodb_buffer_pool_size = 384M  
innodb_log_file_size=5M  
innodb_lock_wait_timeout = 18000

embora a mesa esteja lá!!

Alguém já enfrentou esse problema antes?

Qualquer ideia é muito apreciada

Obrigado

mysql replication
  • 3 respostas
  • 16486 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