Articles of innodb

Come posso riparare una tabella InnoDB?

Noi (apparentemente) abbiamo mal eseguito il nostro motore di database Solaris MySQL ieri sera. Almeno alcune delle tabelle InnoDB sono danneggiate, con errori di data / ora non corretti nel log delle transazioni e un errore specifico sull’indice corrotto. Sappiamo degli strumenti disponibili per le riparazioni delle tabelle MyISAM, ma non riesco a trovare nulla […]

Come ottimizzare le prestazioni COUNT (*) su InnoDB usando l’indice

Ho una tabella InnoDB ampia ma stretta con record di ~ 9m. Il count(*) o il count(id) sul tavolo è estremamente lento (6+ secondi): DROP TABLE IF EXISTS `perf2`; CREATE TABLE `perf2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `channel_id` int(11) DEFAULT NULL, `timestamp` bigint(20) NOT NULL, `value` double NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY […]

C’è un guadagno in termini di prestazioni nell’indicizzazione di un campo booleano?

Sto per scrivere una query che include un WHERE isok=1 . Come suggerisce il nome, isok è un campo booleano (in realtà un TINYINT(1) UNSIGNED impostato su 0 o 1 come necessario). C’è qualche guadagno in termini di prestazioni nell’indicizzare questo campo? Il motore (InnoDB in questo caso) funzionerebbe meglio o peggio guardando l’indice?

MySQL DROP tutte le tabelle, ignorando le chiavi esterne

C’è un modo molto semplice per eliminare tutte le tabelle da un database MySQL, ignorando eventuali vincoli di chiave esterna che potrebbero esserci?

Definizione della chiave composita con incremento automatico in MySQL

Scenario: Ho una tabella che fa riferimento a due chiavi esterne e, per ciascuna combinazione univoca di queste chiavi esterne, ha la sua colonna auto_increment. Devo implementare una chiave composita che aiuti a identificare la riga come unica utilizzando la combinazione di questi tre (una chiave esterna e una colonna auto_increment e un’altra colonna con […]

Forza InnoDB per ricontrollare le chiavi esterne su una tabella / tabelle?

Ho una serie di tabelle InnoDB che periodicamente devo mantenere rimuovendo alcune righe e inserendone altre. Diverse tabelle hanno vincoli di chiave esterna che fanno riferimento ad altre tabelle, quindi questo significa che l’ordine di caricamento della tabella è importante. Per inserire le nuove righe senza preoccuparmi dell’ordine delle tabelle, utilizzo: SET FOREIGN_KEY_CHECKS=0; prima e […]

Indice MySQL Integer vs DateTime

Vorrei iniziare dicendo che ho esaminato molte domande simili, ma tutte si riferiscono al tipo di campo Timestamp e DateTime senza indicizzazione. Almeno questa è la mia comprensione. Come tutti sappiamo, ci sono alcuni vantaggi quando si tratta di DateTime. Mettendoli da parte per un minuto, e ipotizzando che il motore di una tabella sia […]

Qual è il comportamento ON DELETE predefinito di MySQL?

Sto cercando di analizzare i documenti MySQL. Potrebbero essere più chiari. Quello che sembrano dire è che ci sono cinque possibilità: SET NULL, NO ACTION, RESTRICT, CASCADE e SET DEFAULT. NESSUNA AZIONE e RESTRICT fanno la stessa cosa (evita qualsiasi modifica del DB che interrompa un FK) e quella cosa è l’impostazione predefinita, quindi se […]

Come abilitare INNODB in mysql

Quando eseguo una query in MySQL restituisce un errore dicendo che InnoDB non è abilitato. Quando ho fatto clic sul motore di archiviazione, InnoDB è stato disabilitato. Come abilitare InnoDB?

Perché l’inserimento InnoDB di MySQL è così lento?

Sto usando grandi numeri casuali come chiavi (provenienti da un altro sistema). Inserti e aggiornamenti su tabelle abbastanza piccole (come in alcuni milioni di righe) impiegano molto più tempo di quanto ritenga ragionevole. Ho distillato un test molto semplice per illustrare. Nella tabella dei test ho cercato di renderlo il più semplice ansible; il mio […]