Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql创建表命令加载项问题_Mysql_Database - Fatal编程技术网

mysql创建表命令加载项问题

mysql创建表命令加载项问题,mysql,database,Mysql,Database,在定义列之后,我的团队将这些语句与create tables一起添加: 引擎=MyISAM默认字符集=utf8校验和=1延迟\键\写=1行\格式=动态自动\增量=465 问题是该表是一个国家/地区查找表。所以我们知道它有一个大约275 ish的固定列表值。此表将是99%的只读表。如果我需要更新任何colunm属性,那么任何写入都是非常罕见的 那么,除了‘ENGINE=MyISAM DEFAULT CHARSET=utf8’之外,我还需要其他东西吗?这只是一个表,他们有这些用于所有大多数表,我不明

在定义列之后,我的团队将这些语句与create tables一起添加:

引擎=MyISAM默认字符集=utf8校验和=1延迟\键\写=1行\格式=动态自动\增量=465

问题是该表是一个国家/地区查找表。所以我们知道它有一个大约275 ish的固定列表值。此表将是99%的只读表。如果我需要更新任何colunm属性,那么任何写入都是非常罕见的


那么,除了‘ENGINE=MyISAM DEFAULT CHARSET=utf8’之外,我还需要其他东西吗?这只是一个表,他们有这些用于所有大多数表,我不明白为什么查找表会有所有这些命令

您可以在中查找所有这些命令

不过你是对的。就你所描述的上下文而言,它们几乎肯定是完全没有必要的

Asides

回复:
AUTO_INCREMENT
作为
CREATE TABLE
的一部分——是的,这只是因为它是活动表的
SHOW CREATE TABLE
的一部分,而不是因为它是团队意图/持续脚本的一部分。没什么大不了的

请注意,
CHECKSUM
DELAY\u KEY\u WRITE
仅适用于MyISAM表。如果该表是InnoDB,那么这两个参数带来的特性可以说是隐式处理的(即表完整性和写入问题)

为什么只读查找表需要innoDB?我认为innoDB更适合写密集型表

对不起。我不是想暗示你需要InnoDB。这只是一种反射。:)


InnoDB的写入性能是否更好取决于使用模式/应用程序。在您的上下文中,我不希望您在使用MyISAM或InnoDB时看到性能差异。无论如何,作为一条经验法则,由于InnoDB可以是acid Compliant,更抗损坏,并且存储在内存中(在InnoDB的缓冲池中),所以我一直主张使用它。MyISAM在所有这些计数上都失败。

您确定这些计数是手动添加的吗?我使用Oracle和Toad,经常提取数据库对象的ddl。即使您使用最简单的语法创建表,但在提取DDL(使用工具/API)时,它会添加创建原始表时未提供但根据数据库设置默认的所有附加选项。它是phpMyAdmin SQL转储的一部分。所以我猜是有人添加了它,无论是团队还是工具?它是phpMyAdminSQL转储的一部分。但是为什么我们需要innoDB来进行只读查找表呢?我认为innoDB更适合写密集型表?至于自动增量,我不确定。它的价值是465英镑,但由于世界上没有那么多国家,所以这张桌子上的物品不会超过275件,所以我不确定。