nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

MEMORY-Table und Indexes

Von: Andreas Born (andreas.born@gmx.de) [Profil]
Datum: 28.09.2009 20:58
Message-ID: <7icfbiF312d6nU1@mid.individual.net>
Newsgroup: de.comp.datenbanken.mysql
Hallo,

hat jemand eine Erklärung, warum folgendes nicht funktioniert?:

CREATE TABLE `tbl` (
`id` varchar(10) NOT NULL,
KEY `id` (`id`(3))
) ENGINE=MEMORY DEFAULT CHARSET=latin1;

INSERT INTO `tbl` (`id`) VALUES
('aWert1'), ('bWert2'), ('cWert3'), ('dWert4');

SELECT * FROM `tbl` where id='cWert3';


Sobald ich den index in seiner Länge festlege (in obigem Beispiel
länge=3), funktioniert die Indexsuche offenbar nicht mehr, er findet
keine Ergebnisse. Mittels folgendem Statement findes er's:

SELECT * FROM `tbl` ignore index (id) where id='cWert3';

Hat das damit zu tun, daß die MEMORY-Engine indexes als Hashes
speichert? Wenn ja, was für einen Sinn macht es dann aber, die
Indexlänge festlegen zu können? (Es spielt hierbei auch keine Rolle, ob
die Tabelle einen Primärschlüssel besitzt.)


Viele Grüße,
Andreas


[ Auf dieses Posting antworten ]

Antworten