2010-12-10 27 views
0

Mon équipe a ajouté ces déclarations avec les créer des tables après les colonnes sont définies:mysql commande create table add questions ons

MOTEUR = MyISAM DEFAULT charset = UTF8 checksum = 1 DELAY_KEY_WRITE = 1 ROW_FORMAT = DYNAMIQUE AUTO_INCREMENT = 465

La question est la table est une table de recherche de pays. nous savons donc qu'il a une valeur de liste fixe d'environ 275-ish. Et cette table sera 99% une table en lecture seule. Très rare sera toute écriture si j'ai besoin de mettre à jour une propriété colunm.

Alors ai-je besoin de tout ça au-delà de 'MOTEUR = MyISAM DEFAULT CHARSET = utf8'? ceci est juste une table, ils ont ces pour tous la plupart des tables et je ne comprends pas pourquoi les tables de recherche auront toutes ces commandes/

+0

Etes-vous sûr que ceux-ci ont été ajoutés manuellement? Je travaille avec Oracle et Toad et extrait fréquemment le ddl pour les objets de base de données. Même si vous créez la table en utilisant la syntaxe minimale minimale, lorsque vous extrayez le DDL (à l'aide d'un outil/API), il ajoute toutes les options supplémentaires qui n'ont pas été données lors de la création de la table d'origine. . –

+0

Il fait partie du vidage SQL de phpMyAdmin. donc je suppose que quelqu'un l'a ajouté, soit l'équipe ou l'outil? – mikey

Répondre

0

Vous pouvez rechercher tous ceux dans the CREATE TABLE doc.

Vous avez raison cependant. Pour le contexte que vous décrivez, ils sont presque sûrement complètement inutiles.

apartés

Re: AUTO_INCREMENT dans le cadre de votre CREATE TABLE - ouais, c'est juste parce qu'il faisait partie de la SHOW CREATE TABLE d'un en direct la table, non pas parce qu'elle faisait partie de vos intentions des équipes/en cours scénario. Pas de biggie. Notez que CHECKSUM et DELAY_KEY_WRITE sont pour les tables MyISAM uniquement. Si cette table était InnoDB, les caractéristiques que ces deux paramètres apportent sont implicitement prises en compte (c'est-à-dire l'intégrité de la table et les problèmes d'écriture). Pourquoi avons-nous besoin d'innoDB pour les tables de consultation en lecture seule?

Pourquoi avons-nous besoin d'innoDB? Je pensais que innoDB est mieux pour les tables intensives en écriture?

Désolé. Je ne voulais pas dire que vous besoin InnoDB. C'est juste un réflexe. :)

Wheat ou pas InnoDB fonctionne mieux pour l'écriture dépend du modèle d'utilisation/application. Pour votre contexte, je ne m'attendrais pas à ce que vous voyiez une différence de performance que vous utilisiez MyISAM ou InnoDB. Quoi qu'il en soit, en règle générale, InnoDB peut être acide, plus résistant à la corruption et stocké en mémoire (dans le pool de tampons d'InnoDB), je le défends toujours. MyISAM échoue sur tous ces points.

+0

Il fait partie du vidage SQL de phpMyAdmin. mais pourquoi avons-nous besoin d'innoDB pour les tables de consultation en lecture seule? Je pensais que innoDB est mieux pour les tables intensives en écriture? En ce qui concerne l'augmentation automatique, je ne suis pas sûr. il a une valeur de 465 mais la table n'aura de toute façon pas plus de 275 articles car il n'y a pas beaucoup de pays dans le monde, donc je ne suis pas sûr. – mikey

+0

@ mikey - voir mise à jour ** À côté ** – Riedsio