Das kommt auf Vieles an.
Welche Datenbank benutzt Ihr? (MySQL (MariaDB), PostgreSQL, MS SqlServer)?
Und bei MySQL: Welcher Engine-Typ (MyISAM, InnoDB)?
Das Handbuch sagt ja:
But the database engine you are using has several limits. The most important one is the limit on the number of fields(columns) in the result table.
- MySQL ISAM: The sum of the lengths of the VARCHAR and CHAR columns in a table may be up to 64KB.
- MySQL InnoDB: Maximum number of 1000 columns
- MS SQL Server 2000: Maximum number of 1024 columns. There are a maximum of 8,060 bytes for size one row, then even is survey can be activated, if you have a lot of text data : participant can not submit…
- Postgres: Maximum number of 250-1600 columns depending on column types. The maximum number of columns can be quadrupled by increasing the default block size to 32k.
Attention : Please think about what you do before you do it! An array of 10 x 10 items already costs you 100 columns. Rule of thumb: every item on the screen that can be filled in or selected costs one column!The mySQL ISAM engine is the most tricky one.
As it allows only up to 65,535 bytes per row and utf8 characters, it can require up to three bytes per character. The maximum may be only 21,844 characters (but this depends on your DB encoding).You can roughly calculate the size of your survey like this:
- Every multiple numerical question: 20 chars for each answer
- Every multiple choice & array question answers: 5 chars for each answer
- Every other question type: 5 chars
- Add 10% for the usual overhead
Ich habe einmal aktiviert (MySQL, MyISAM) und Daten eingegeben.
10 Tiere und dann in jede Textzelle der Matrizen 25 Zeichen, in jede der offenen Antworten 260 Zeichen. Und dann kommt die "große Matrix".
Das hat die Kapazität einer Zeile nicht im geringsten angekratzt.
Dies liegt hauptsächlich daran, das Variablen, die in MySQL den Datentyp "text" haben, nicht voll zählen,
Siehe hier aus dem MySQL-Handbuch
The maximum row size for a given table is determined by several factors:
- The internal representation of a MySQL table has a maximum row size limit of 65,535 bytes, even if the storage engine is capable of supporting larger rows.
TEXT columns only contribute 9 to 12 bytes toward the row size limit because their contents are stored separately from the rest of the row.
- The maximum row size for an
table, which applies to data stored locally within a database page, is slightly less than half a page for 4KB, 8KB, 16KB, and 32KB settings. For example, the maximum row size is slightly less than 8KB for the default 16KB
page size. For 64KB pages, the maximum row size is slightly less than 16KB.
Und bis auf die erste Mehrfachnennung sind ALLE eure Variablen "text".
Gut, mit MyISAM passiert nichts.
Aber InnoDB.
Wie oben steht: Maximum 1000 Spalten.
Und wieviele Spalten hat Eure Umfrage?
1018
Daran kann es liegen. Vielleicht könnt Ihr ein Tier weglassen, die Säugetiere, die ja immer noch in Klammern eingesperrt sind)=, oder die allgemeinen Vögel, Das würd pro Tiere 43 Spalten einsparen.
Der Text ist so lang, weil ich geschrieben habe und gleichzeitig die Recherche durchgeführt und getestet habe
Joffm