Wie kann ich auslesen wieviel speicher eine Zeile belegt?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • h3ll
    antwortet
    Das Datenbankdesign ist doch ziemlicher Schrott. Am besten alles niederreißen und vernünftig aufbauen.

    http://de.wikipedia.org/wiki/Normali...28Datenbank%29

    Einen Kommentar schreiben:


  • Lennynero
    antwortet
    Create Statement:

    Code:
    CREATE TABLE `table` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `foreign_key_1` int(11) DEFAULT NULL,
      `foreign_key_2` int(11) DEFAULT NULL,
      `foreign_key_3` int(11) DEFAULT NULL,
      `enum_field_1` enum('option_1','option_2') CHARACTER SET latin1 COLLATE latin1_german1_ci 
      DEFAULT 'option_1',
      `enum_field_2` enum('option_1','option_2') CHARACTER SET latin1 COLLATE latin1_german1_ci 
      DEFAULT NULL,
      `enum_field_3` enum('Keine Angabe','2002','2003','2004','2005',
      '2006','2007','2008','2009','2010') DEFAULT NULL,
      `enum_field_4` enum('option_1','option_2','option_3','option_4','option_5','option_6',
      'option_7','option_8','option_9','option_10','option_11','option_12','option_13') DEFAULT NULL,
      `varchar_field_1` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_2` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_3` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_4` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_5` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_6` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `text_field_1` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
      `varchar_field_7` varchar(255) DEFAULT NULL,
      `varchar_field_8` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_9` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_10` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_11` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `set_field_1` set('option_1','option_2','option_3','option_4') CHARACTER SET latin1 
    COLLATE latin1_german1_ci DEFAULT NULL,
      `set_field_1` set('option_1','option_2','option_3','option_4') DEFAULT NULL,
      `text_field_2` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
      `varchar_field_12` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `varchar_field_13` varchar(255) CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `set_field_1` set('option_1','option_2') CHARACTER SET latin1 COLLATE latin1_german1_ci 
      DEFAULT NULL,
      `set_field_2` set('option_1','option_2','option_3','option_4') CHARACTER SET latin1 
      COLLATE latin1_german1_ci DEFAULT NULL,
      `int_field_1` tinyint(4) DEFAULT NULL,
      `set_field_3` set('option_1','option_2','option_3','option_4','option_5','option_6') 
      CHARACTER SET latin1 COLLATE latin1_german1_ci DEFAULT NULL,
      `set_field_4` set('option_1','option_2') CHARACTER SET latin1 COLLATE latin1_german1_ci 
      DEFAULT NULL,
      `text_field_3` text CHARACTER SET latin1 COLLATE latin1_german1_ci,
      `int_field_1` tinyint(4) DEFAULT NULL,
      `int_field_2` tinyint(4) DEFAULT NULL,
      `int_field_3` tinyint(4) DEFAULT NULL,
      `int_field_4` tinyint(4) DEFAULT NULL,
      `int_field_5` tinyint(4) DEFAULT NULL,
      `int_field_6` tinyint(4) DEFAULT NULL,
      `int_field_7` tinyint(4) DEFAULT NULL,
      `int_field_8` tinyint(4) DEFAULT NULL,
      `int_field_9` tinyint(4) DEFAULT NULL,
      `int_field_10` tinyint(4) DEFAULT NULL,
      `int_field_11` tinyint(4) DEFAULT NULL,
      `int_field_12` tinyint(4) DEFAULT NULL,
      `varchar_field_14` varchar(255) DEFAULT NULL,
      `status` tinyint(4) DEFAULT NULL COMMENT 'Status',
      `created` datetime DEFAULT NULL COMMENT 'Erstellt am',
      `created_by` int(11) DEFAULT NULL COMMENT 'Erstellt von',
      `modified` datetime DEFAULT NULL COMMENT 'Bearbeitet am',
      `modified_by` int(11) DEFAULT NULL COMMENT 'Bearbeitet von',
      PRIMARY KEY (`id`),
      UNIQUE KEY `uidx_varchar_field_14` (`varchar_field_14`)
    ) ENGINE=ndbcluster DEFAULT CHARSET=latin1
    Alter-Table Statement:
    Code:
    ALTER TABLE `table`
    MODIFY COLUMN `enum_field_3`
    ENUM('Keine Angabe','2002','2003','2004','2005','2006','2007','2008','2009','2010');
    (War vorher ohne 2010).

    Auch das dritte Textfeld wurde gekürzt, bei Textefeld 2 gibt es keine Text der so lang war /ist.
    Zuletzt geändert von Lennynero; 12.01.2010, 14:59.

    Einen Kommentar schreiben:


  • AmicaNoctis
    antwortet
    Wie lautete denn das ALTER TABLE Statement, was du abgesetzt hast und wie sieht das komplette CREATE TABLE Statement aus, welches du mit SHOW CREATE TABLE bekommst?

    Amica

    Einen Kommentar schreiben:


  • Lennynero
    antwortet
    Nach einem "ALTER TABLE" (Änderung eines ENUM-Feldes) sind einige (nicht alle!) Textfelder einer Spalte auf 256 Zeichen gekürzt worden.

    Es ist mir bisher noch nicht ersichtlich wo die Gemeinsamkeiten der beschnittenen Zeilen liegen und es ist ebenfalls erstaunlich, das ich wieder Texte die länger als 256 Zeichen sind reinschreiben kann.

    Tabellentyp ist ndbcluster.

    Einen Kommentar schreiben:


  • onemorenerd
    antwortet
    Du kannst mit DESCRIBE `table` die Spaltentypen herausfinden. Dann weißt du schon mal wie viel Speicher ein Datensatz maximal belegen kann.
    Falls es Spalten mit variable breiten Typen geben, musst du den konkreten Datensatz herausziehen und analysieren.

    Wofür soll das eigentlich gut sein? Warum willst du das wissen?

    Einen Kommentar schreiben:


  • Wie kann ich auslesen wieviel speicher eine Zeile belegt?

    Hi,

    gibt es einen MySQL Befehl, mit dem ich auslesen kann wieviel Speicher eine Zeile belegt?

    So etwa:

    Code:
    SELECT Memory(), id FROM table
    Gruss,
    Markus
Lädt...
X