Sebastian: Mysql - Spalten über where spalte like "" oder spalte=""

Beitrag lesen

hi,

mir ist schon bewusst das die "where spalte like "" Abfrage" langsamer ist als die "where spalte="" Abfrage", aber ich habe eine tabelle mit 18 spalten.

in diesen spalten sind nummer. bei spalte1 ist nur die nummer 33, bei spalte zwei ist die nummer 33 und noch 12, und jede weitere spalte bekommt immer 2 neue nummer.

ich frage es zur zeit immer so ab.

select * from tabelle where spalte1=3300000000;
select * from tabelle where spalte2=3312000000;
select * from tabelle where spalte3=3312340000;
select * from tabelle where spalte4=3312345500;
select * from tabelle where spalte5=3312345512;

+------------+------------+------------+------------+------------+
| 3300000000 | 3312000000 | 3312340000 | 3312345500 | 3312345512 |
+------------+------------+------------+------------+------------+

aber der nachteil ist dass ich immer 4 spalte mehr in der tabelle speichern muss.
wenn ich es jedoch mit dem like operator abfragen würde, dann bräuchte ich nur 1 spalte, also 4 spalten weniger.

select * from tabelle where spalte1 like "33%";
select * from tabelle where spalte1 like "3312%";
select * from tabelle where spalte1 like "331234%";
select * from tabelle where spalte1 like "33123455%";
select * from tabelle where spalte1 like "3312345512%";
                                          ^ man sollte beachten das der ersetzungsoperator '%' nicht am anfang vorhanden ist, was dazu führt dass ich auch indexe verwenden könnte.

+------------+
| 3312345512 |
+------------+

wenn ich die 5 spalten variante verwenden würde dann hätte ich insgesamt eine tabelle mit 18 spalten.

wenn ich jedoch die 1 spalten variante verwenden würde, dann hätte ich insgesamt eine tabelle mit 14 spalte
und viel weniger datenmenge, da diese tabelle mit 100.000 datensätzen ausgestattet ist.

zusammenfassung:

5 spalten variante:

vorteile: abfrage mit where spalte= ,also ohne like operator

nachteile: 4 spalten mehr als in 1 spalten variante, mehr speicherplatz benötigt

1 spalten variante:

vorteile: weniger speicherplatz benötigt, nur eine 1 spalte wird benötigt

nachteile: abfrage mit where spalte1 like "3312%", was eigentlich nicht so schlimm wäre weil der ersetzungsoperator nur am ende wäre und nicht am anfang, was glaube ich heisst, wenn ich richtig informiert bin, dass mysql dann über nen index auf die spalte zugreift.

was würdet ihr bevorzugen.
ich würde die 1 spalten variante bevorzugen.

ich hoffe ihr kapiert es.

wäre dankbar für hilfreiche antworten