![]() |
Dieses Thema wurde am "04. Jul 2010, 20:19 Uhr" von "mkinzler" aus dem Forum "Klatsch und Tratsch" in das Forum "Programmieren allgemein" verschoben.
|
AW: PHP - sind hier "Sicherheitsexperten" an Board?
Nja, irgendwo war auch ein Test zu sehn, wo InnoDB mindestens doppelt so langsam war.
Außerdem soll InnoDB mehr Speicher belegen. (hab's aber noch nicht getestet) Mindestens eine Tabelle werde ich vermutlich auch als MEMORY anlegen (mal sehn ob as was ausmacht, ist ja eh nur für 'ne Cache) Die Volltextsuche werd' ich an ein/zwei Stellen benötigen, also ich hätte ich mich so oder so je nach Tabelle entschieden. Also gut, dann mal sehn wie's weitergeht. Den Kern meines winzigen/kranken CMS hab ich soweit wieder am laufen und alles schön mit Klassen usw. (Das Einzige, was sich kaum geändert hat, ist meine MySQL-Klasse :stupid: ) |
AW: PHP - sind hier "Sicherheitsexperten" an Board?
Moin,
ja, InnoDB ist etwas langsamer als MyISAM. Trotzdem rate ich dir dringendst, InnoDB zu verwenden. Warum?
Kurzum: wenn du mit Datenbanken arbeiten willst, nimm InnoDB. Wenn du deine Daten irgendwo parken willst um dich in ein paar Jahren darueber zu aergern dass die DB mehr Loecher in den Relationen hat als die Schweiz im Kaese dann verwende InnoDB. Vertrau mir, InnoDB sollte deine Wahl sein. Greetz alcaeus |
AW: PHP - sind hier "Sicherheitsexperten" an Board?
Also kann ich es mir sparen verschiedene Engines zu verwenden?
Brauche ja nicht überall diese schönen Sachen und hätte InnoDB jetzt nur da verwendet, wo ich dieses benötigt hätte. Ich versuch ja grade diese ForeignKeys verwenden zu wollte ... wenn es denn mal ginge. (kämpfe grade mit diesem blöden "Can't create table 'test.#sql-ce0_ba' (errno: 150)" und noch keiner der Tipps half. ) |
AW: PHP - sind hier "Sicherheitsexperten" an Board?
Fuehr nach dem create table mal ein "show innodb status" aus. Da steht dann unter "LATEST FOREIGN KEY ERROR" unter anderem folgendes:
Zitat:
Greetz alcaeus PS: obiges Ergebnis ergibt eine Google-Suche nach wenigen Momenten. Nur so als Hinweis. |
AW: PHP - sind hier "Sicherheitsexperten" an Board?
Zitat:
Zitat:
aber irgendwas stimmt wohl einfach nicht ... weiß nur noch nicht was :cry:
SQL-Code:
das sollte doch eigentlich stimmen? :|
CREATE TABLE IF NOT EXISTS `hCMS_Config_Group` (
`Name` VARCHAR(31) UNIQUE KEY, `Description` VARCHAR(31) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_unicode_ci result: OK CREATE TABLE IF NOT EXISTS `hCMS_Config` ( `Name` VARCHAR(63) UNIQUE KEY, `Value` VARCHAR(127), `Type` ENUM ('String', 'Integer', 'Boolean', 'Serialize') DEFAULT 'String', `Description` VARCHAR(31), `Group` VARCHAR(31) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_unicode_ci result: OK ALTER TABLE `hCMS_Config` ADD INDEX (`Group`) result: OK ALTER TABLE `hCMS_Config` ADD FOREIGN KEY (`Group`) REFERENCES `Config_Group` (`Name`) ON DELETE NO ACTION ON UPDATE NO ACTION result (1005): Can't create table 'test.#sql-ce0_ba' (errno: 150) "show innodb status" meint dann auch noch irgendwas von Zitat:
|
AW: PHP - sind hier "Sicherheitsexperten" an Board?
Hi!
Das Problem steht doch da?! Er kann `Config_Group` nicht finden, da die Tabelle `hCMS_Config_Group` heißt. Grüße, Frederic |
AW: PHP - sind hier "Sicherheitsexperten" an Board?
:shock:
:shock: :shock: :shock: Aehm....ja. Bitte, bitte, bitte, mach dich schlau was DB-Design betrifft. Also: Die Tabelle hCMS_Config_Group hat als Unique-Key einen Varchar von 31 Zeichen Laenge. Da MySQL bei UTF-8 3 Bytes pro Zeichen reserviert hast du dir da grad einen 93 Byte grossen Index gebastelt. Dumme Idee. hCMS_Config verwendet einen 63 Zeichen langen String, d.h. einen 189 Byte grossen Index. Noch viel duemmer. Fuer sowas verwendet man numerische Primary-Keys. Naechster Punkt: hCMS_Config hat einen Index namens `Group`, dieser beinhaltet aber keine Spalten - er bringt also gar nichts. Du versuchst nun einen Foreign-Key auf diesen Index zu legen welcher auf die hCMS_Config_Group zeigt. Das kann nicht gut gehn. Greetz alcaeus PS: gib es einen Grund warum du deinen Strings so interessante Laengen wie z.B. 31 Zeichen, 63 Zeichen, 127 Zeichen, etc.? |
AW: PHP - sind hier "Sicherheitsexperten" an Board?
es raucht ... es raucht ... ruft die Feuerwehr :firejump:
Nja, immerhin hab ich nun alles auf Klassen umgestellt, dank der Vererbung und den Autoloadern konnte vieles vereinfacht und automatisiert werden. (Der Installer suchst sich jetzt z.B. alles selber zusammen, fragt die Klassen nach ihren Datenbank anbindungen und macht dann alles von alleine ... selbst nach erweiterungen muß ich den zukünftig wohl nicht mehr ändern müssen :thumb: , wenn ich dann mal ein ordentliches passendes DB-Design zusammen hab) |
AW: PHP - sind hier "Sicherheitsexperten" an Board?
*verwirrung*
Zitat:
![]() ![]() heißt das nun, daß bei VARCHAR doch nicht 3 Byte für UTF-8 gespeichert werden? :? Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz