我正在研究涉及大量数据库写入的项目,我会说(70%的插入和30%的读取).该比率还包括我认为是一次读取和一次写入的更新.读取可能很脏(例如,在读取时我不需要100%准确的信息).
有问题的任务将是每小时进行超过100万次数据库事务.
我在网上看到了一些关于MyISAM和InnoDB之间差异的东西,对于我将用于此任务的特定数据库/表格来说,MyISAM似乎是我的明显选择.从我似乎正在阅读的内容来看,如果需要事务处理,InnoDB很好,因为支持行级锁定.
有没有人有这种负载(或更高)的经验?MyISAM是走的路吗?
我的MySQL数据库包含几个使用不同存储引擎的表(特别是myisam和innodb).如何找出哪个表使用哪个引擎?
我知道之前已经问过这个问题,但大部分时间都会询问与特定数据库或表格有关的问题.我无法在这个网站上找到描述两个引擎及其差异的答案,而不考虑某些特定数据库.
我希望将来能够在设计表或数据库时做出更明智的决策,所以我正在寻找关于两个存储引擎之间差异的全面答案.
这是我正在使用的激烈设置的粗略过度简化.table_1并且table_2两者都有自动增加代理主键作为ID.info是一个包含有关table_1和的信息的表table_2.
table_1 (id, field)
table_2 (id, field, field)
info ( ???, field)
Run Code Online (Sandbox Code Playgroud)
我试图决定,如果我应该做的主键info的ID从复合材料table_1和table_2.如果我这样做,哪一个最有意义呢?
(在这个例子中,我将ID 11209与ID 437相结合)
INT(9)11209437 (我可以想象为什么这很糟糕)
VARCHAR (10) 11209-437
DECIMAL (10,4)11209.437
或者是其他东西?
将它用作MYSQL MYISAM数据库的主键可以吗?
mysql myisam primary-key composite-key composite-primary-key
使用INT与VARCHAR作为MySQL中的主键之间是否存在可衡量的性能差异?我想使用VARCHAR作为参考列表的主键(想想美国,国家代码),并且同事不会将INT AUTO_INCREMENT作为所有表的主键.
我的论点,详见这里,是INT和VARCHAR之间的性能差异可以忽略不计,因为每个INT外键引用将需要一个JOIN,使参考的意义上说,VARCHAR键则直接呈现的信息.
那么,有没有人有这个特定用例的经验以及与之相关的性能问题?
在MySQL中,无法为特定数据库指定存储引擎,仅针对单个表.但是,您可以指定在一个会话期间使用的存储引擎:
SET storage_engine=InnoDB;
Run Code Online (Sandbox Code Playgroud)
因此,您不必为每个表指定它.
如果确实所有表都使用InnoDB,我如何确认?
在某些情况下,在生产中运行UPDATE语句可以节省一天.然而,borked更新可能比最初的问题更糟糕.
如果没有使用测试数据库,有什么选项可以告诉更新语句在运行之前会做什么?
我正在使用mysql和mysql工作台.我用innodb引擎创建了5个表.在我将数据插入其中之前,我检查了他们的引擎并且它是innodb.我从5个MyISAM表中插入数据,现在我的innodb表是MyISAM.我无法改变它们.我使用了alter table engine = innodb但它不起作用.
下面的查询我在Ubuntu 12,MySQL 5.1版本中执行并收到错误,如上所述:
CREATE TABLE mantis_config_table (
config_id VARCHAR(64) NOT NULL,
project_id INTEGER NOT NULL DEFAULT 0,
user_id INTEGER NOT NULL DEFAULT 0,
access_reqd INTEGER DEFAULT 0,
type INTEGER DEFAULT 90,
value LONGTEXT NOT NULL,
PRIMARY KEY (config_id, project_id, user_id)
) TYPE=MyISAM;
Run Code Online (Sandbox Code Playgroud)
您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在第9行的"TYPE = MyISAM"附近使用正确的语法
任何人都可以建议什么是错的?
myisam ×10
mysql ×10
innodb ×7
database ×4
performance ×2
primary-key ×2
php ×1
sql ×1
syntax-error ×1
testing ×1