nervende collate-Statements und Performance-Frage

nervende collate-Statements und Performance-Frage

am 29.01.2006 16:03:10 von Mario Wolframm

Hi,

ich habe das Problem, dass ich in einer Mysql 5.0.18 (XAMPP) eine=20
Struktur mit Kundendaten habe


CREATE TABLE `werte`.`kunden` (
`Kundennummer` varchar(6) collate latin1_german1_ci NOT NULL default=20
'000000',
`Vertragsnummer` varchar(10) character set latin1 default NULL,
`Kurzname` varchar(30) collate latin1_german1_ci default NULL,
`Name_1` varchar(50) collate latin1_german1_ci default NULL,
-- ein paar weitere Arribute, ist aber hier ggf. nicht wichtig
PRIMARY KEY (`Kundennummer`)
) ENGINE=3DMyISAM DEFAULT CHARSET=3Dlatin1 COLLATE=3Dlatin1_german1_ci;

Die Tabelle ist auf latin1_german1, da ich nach deutsch Namen auch=20
teilweise suchen muss.

Ich entwickle eine Applikation, wo ein Großteil der Intelligenz in der =

DB steckt, aus hier bereits öfter diskutierten Gründen.

Ich habe bislang nie Probleme gehabt, aber was auch immer ich im Query=20
Browser auch anstlle, ich kann mich nie auf meine Statements und=20
Prozeduren konzentrieren, da bei der Ausführung ich an allen mögliche=
n=20
Stellen Collate Anweisungen brauche, weil mir die Kiste ständig Strings=
=20
in swedish vergleichen möchte, bzw. wenn sie direkt aus dem Browser=20
stammen, dann noch nicht mal Utf8 darin umwandeln will.

Wo habe ich was falsch gemacht? Und, verlangsamen diese Collate's meine=20
SQL-Abfragen (nutze auch Cursor)?

Danke und Ciao,
Mario

Re: nervende collate-Statements und Performance-Frage

am 30.01.2006 01:06:40 von Sven Paulus

Mario Wolframm wrote:
> Ich habe bislang nie Probleme gehabt, aber was auch immer ich im Query=20
> Browser auch anstlle, ich kann mich nie auf meine Statements und=20
> Prozeduren konzentrieren, da bei der Ausführung ich an allen möglich=
en=20
> Stellen Collate Anweisungen brauche, weil mir die Kiste ständig String=
s=20
> in swedish vergleichen möchte, bzw. wenn sie direkt aus dem Browser=20
> stammen, dann noch nicht mal Utf8 darin umwandeln will.

Hast Du mal mit den drei Einstellungen
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
rumgespielt? Damit solltst Du das doch eigentlich globaler setzen
koennen.

Re: nervende collate-Statements und Performance-Frage

am 30.01.2006 07:11:46 von Mario Wolframm

Sven Paulus wrote:

> Hast Du mal mit den drei Einstellungen
> | collation_connection | latin1_swedish_ci |
> | collation_database | latin1_swedish_ci |
> | collation_server | latin1_swedish_ci |
> rumgespielt? Damit solltst Du das doch eigentlich globaler setzen
> koennen.

Ja, habe ich jetzt dann mal auch. Leider hatte ich bei dem Import aus=20
einer Access-DB nicht so aufgepasst, daher waren die Tabellen teilweise=20
mit unterschiedlichen Charsets und Collations versaut.

Habe jetzt den Holzhammer angesetzt: Schema exportiert, suchen und=20
ersetzen/löschen der entsprechenden individuellen Settings, einlesen in=
=20
neues Schema, "insert into `db2`.`table1` select * from `db1`.`table1`". =

20 zu bereinigende Procedures, 12 Tabellen und 1,5 Mio Records später=20
war mein Schmerz zuende.

Aber danke, genau in die Richtung musste ich gucken, um den Fehler zu=20
finden!

Ciao,
Mario