2013-04-23 150 views
-1

我对我的桌子数据大小有疑问。 如何修正数据类型及其大小。 请在这里帮我。如何修复数据类型大小?

mysql> show create table AssignmentPolicy\G 
*************************** 1. row *************************** 
     Table: AssignmentPolicy 
Create Table: CREATE TABLE `AssignmentPolicy` (
    `AssignmentPolicyID` int(11) NOT NULL AUTO_INCREMENT, 
    `AssignmentPolicyGroupID` smallint(3) unsigned DEFAULT NULL, 
    `AssignmentPolicyName` varchar(50) NOT NULL DEFAULT '', 
    `AssignmentPolicyTitle` varchar(250) NOT NULL DEFAULT '', 
    `AssignmentPolicyDescription` tinytext NOT NULL, 
    `Order` smallint(3) unsigned NOT NULL DEFAULT '0', 
    `Editable` tinyint(1) unsigned NOT NULL DEFAULT '1', 
    `DefaultValue` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0', 
    `Dependency` int(11) DEFAULT NULL, 
    PRIMARY KEY (`AssignmentPolicyID`) 
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1 
1 row in set (0.00 sec) 


Tables: 

mysql> show create table Item\G 
*************************** 1. row *************************** 
     Table: Item 
Create Table: CREATE TABLE `Item` (
    `Item_ID` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `Reviewer_User_ID` int(10) unsigned DEFAULT NULL, 
    `Author_User_ID` int(10) unsigned DEFAULT NULL, 
    `Status_Code` enum('live','in_progress','needs_revision','ready_for_review','ready_for_final_review','hidden','deprecated') DEFAULT 'in_progress', 
    `Topic_ID` mediumint(8) unsigned DEFAULT NULL, 
    `Title` varchar(255) DEFAULT NULL, 
    `Cognitive_Type` enum('conceptual','quantitative','vocabulary') DEFAULT NULL, 
    `Difficulty` enum('easy','medium','hard') DEFAULT NULL, 
    `Description` mediumtext, 
    `bookQNum` varchar(50) DEFAULT NULL, 
    `Is_EOC` tinyint(4) NOT NULL DEFAULT '0', 
    `Propagate_Algos` tinyint(4) NOT NULL DEFAULT '0', 
    `Regenerate_Algos` tinyint(4) NOT NULL DEFAULT '0', 
    `Visibility` enum('private','system') DEFAULT 'system', 
    `Source_Taxonomy` smallint(5) unsigned DEFAULT NULL, 
    `Date_Created` datetime DEFAULT NULL, 
    `ItemCopied_ID` int(10) unsigned DEFAULT NULL, 
    `TemplateCopied_ID` int(10) unsigned DEFAULT NULL, 
    `ibis_compatible` enum('false','true') NOT NULL DEFAULT 'true', 
    `sequoia_compatible` enum('false','true') NOT NULL DEFAULT 'false', 
    PRIMARY KEY (`Item_ID`), 
    KEY `Topic_ID` (`Topic_ID`), 
    KEY `Status_Code` (`Status_Code`), 
    KEY `Author_User_ID` (`Author_User_ID`), 
    KEY `Reviewer_User_ID` (`Reviewer_User_ID`), 
    KEY `ItemCopied_ID` (`ItemCopied_ID`), 
    KEY `TemplateCopied_ID` (`TemplateCopied_ID`), 
    KEY `Item2Taxonomy` (`Source_Taxonomy`), 
    CONSTRAINT `Item2Author_User_ID` FOREIGN KEY (`Author_User_ID`) REFERENCES `User` (`userID`) ON UPDATE CASCADE, 
    CONSTRAINT `Item2content__taxonomy` FOREIGN KEY (`Source_Taxonomy`) REFERENCES `content`.`taxonomy` (`Key`) ON UPDATE CASCADE, 
    CONSTRAINT `Item2content__topic` FOREIGN KEY (`Topic_ID`) REFERENCES `content`.`topic` (`Key`) ON UPDATE CASCADE, 
    CONSTRAINT `Item2Item_Copied` FOREIGN KEY (`ItemCopied_ID`) REFERENCES `Item` (`Item_ID`) ON DELETE SET NULL ON UPDATE CASCADE, 
    CONSTRAINT `Item2Template_Copied` FOREIGN KEY (`TemplateCopied_ID`) REFERENCES `Item` (`Item_ID`) ON DELETE SET NULL ON UPDATE CASCADE 
) ENGINE=InnoDB AUTO_INCREMENT=41885 DEFAULT CHARSET=latin1 
1 row in set (0.00 sec) 
+0

有什么问题?你有什么问题? *你有什么试过?* – Polynomial 2013-04-23 14:44:26

+0

我想修改我的数据类型和它的大小以获得良好的性能。 – user204288 2013-04-23 14:45:47

+0

这没有回答我的任何问题。 StackExchange对问题质量有严格的指导,所以你的问题可能会被关闭。请阅读[FAQ](http://stackoverflow.com/faq)了解更多详情。 – Polynomial 2013-04-23 14:47:41

回答

0

数字类型,如int不具有动态的大小。如果你设置了int(11),你设置了填充级别,而不是“整数大小”,这是......你知道......整数大小。因此,如果不是故意设置填充,我将首先删除所有int/tinyint/etc“(xx)”值。如果你想改变表中的列,你必须使用ALTER TABLE,这里有一些很好的例子:http://dev.mysql.com/doc/refman/5.1/en/alter-table-examples.html