Zwei Sätze von identischen Tabellen mit Joins Indizes in MySQL verwendet wird; ein erfordert Voll-Table-Scan

StackOverflow https://stackoverflow.com/questions/2262458

  •  20-09-2019
  •  | 
  •  

Frage

Im mit Indizes in MySQL sehr verwirrt.

Ich habe zwei Tabellen:. TableA1 und TableA2

Ich habe Indizes auf diese für die Verbindungen zwischen ihnen und Abfragen ausführen wirklich schnell.

Ich habe noch 2 Tische mit einem identischen Aufbau z.B. TableB1 und TableB2. Der einzige Unterschied ist, dass diese Tabellen ein paar Nullwerte haben.

Aus irgendeinem Grunde die gleiche Abfrage auf TableA etwa 5-mal schneller und erfordert keinen Voll-Table-Scan. TableB scheint jedoch einen vollständigen Tabellenscan zu verwenden, und ich kann, warum nicht funktioniert. Könnte es die Null-Werte, die dies verursachen?

Ich bemerke mit erklären, dass auf der TableA Setup, ich possible keys: myindex und auch ref: func; aber auf der TableB Setup bekomme ich nur possible keys: NULL und ref: NULL.

Ich habe schon eine ganze Weile auf diese gesucht um und kann scheinen nicht eine relevante Antwort zu finden. Wäre dankbar, wenn mir jemand in die richtige Richtung zeigen kann.

(Sorry, jetzt auf die ursprüngliche Frage hinzugefügt.)

Hier ist TableAOne:

CREATE TABLE `TableAOne` (
  `field1` varchar(255) DEFAULT NULL,
  `field2` varchar(255) DEFAULT NULL,
  KEY `myindex` (`field1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Und TableATwo:

CREATE TABLE `TableATwo` (
  `Field3` varchar(255) ,
  `Field4` varchar(255) ,
  `Field5` varchar(255) ,
  `id` int(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=15522 DEFAULT CHARSET=utf8;

Ich trete Field3 mit Field1.

Die Tabellen, die den Voll-Table-Scan erhalten sind identisch mit den oben stehenden Tabellen. Der einzige Unterschied ist, dass sie anstelle von TableA genannt TableB.

Cheers,
Ke

War es hilfreich?

Lösung

Ich löschte nur die Tabelle und neu installiert es auf den db (i tat Änderung UTF8 latin1 nicht sicher, ob dies einen Unterschied gemacht), aber es funktioniert jetzt, wirklich seltsam! Dank v viel für alle die Antworten sie sicher mich auf die Antwort prost geschoben:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top