标签: myisam

MyISAM与InnoDB

我正在研究涉及大量数据库写入的项目,我会说(70%的插入和30%的读取).该比率还包括我认为是一次读取和一次写入的更新.读取可能很脏(例如,在读取时我不需要100%准确的信息).
有问题的任务将是每小时进行超过100万次数据库事务.

我在网上看到了一些关于MyISAM和InnoDB之间差异的东西,对于我将用于此任务的特定数据库/表格来说,MyISAM似乎是我的明显选择.从我似乎正在阅读的内容来看,如果需要事务处理,InnoDB很好,因为支持行级锁定.

有没有人有这种负载(或更高)的经验?MyISAM是走的路吗?

mysql database performance myisam innodb

853
推荐指数
16
解决办法
29万
查看次数

如何检查特定表的MySQL引擎类型?

我的MySQL数据库包含几个使用不同存储引擎的表(特别是myisam和innodb).如何找出哪个表使用哪个引擎?

mysql myisam innodb

371
推荐指数
9
解决办法
30万
查看次数

MyISAM和InnoDB有什么区别?

我知道之前已经问过这个问题,但大部分时间都会询问与特定数据库或表格有关的问题.我无法在这个网站上找到描述两个引擎及其差异的答案,而不考虑某些特定数据库.

我希望将来能够在设计表或数据库时做出更明智的决策,所以我正在寻找关于两个存储引擎之间差异的全面答案.

MyISAMInnoDB有什么区别,在尝试在一个或另一个之间做什么时,我应该寻找什么?

mysql database myisam innodb

250
推荐指数
2
解决办法
26万
查看次数

如何正确创建复合主键 - MYSQL

这是我正在使用的激烈设置的粗略过度简化.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_1table_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

166
推荐指数
5
解决办法
29万
查看次数

INT和VARCHAR主键之间是否存在真正的性能差异?

使用INT与VARCHAR作为MySQL中的主键之间是否存在可衡量的性能差异?我想使用VARCHAR作为参考列表的主键(想想美国,国家代码),并且同事不会将INT AUTO_INCREMENT作为所有表的主键.

我的论点,详见这里,是INT和VARCHAR之间的性能差异可以忽略不计,因为每个INT外键引用将需要一个JOIN,使参考的意义上说,VARCHAR键则直接呈现的信息.

那么,有没有人有这个特定用例的经验以及与之相关的性能问题?

mysql performance myisam innodb primary-key

161
推荐指数
7
解决办法
10万
查看次数

112
推荐指数
5
解决办法
8万
查看次数

我怎么知道mysql表是使用myISAM还是InnoDB引擎?

在MySQL中,无法为特定数据库指定存储引擎,仅针对单个表.但是,您可以指定在一个会话期间使用的存储引擎:

SET storage_engine=InnoDB;
Run Code Online (Sandbox Code Playgroud)

因此,您不必为每个表指定它.

如果确实所有表都使用InnoDB,我如何确认?

mysql myisam innodb storage-engines

81
推荐指数
3
解决办法
6万
查看次数

如何在运行之前测试SQL Update语句?

在某些情况下,在生产中运行UPDATE语句可以节省一天.然而,borked更新可能比最初的问题更糟糕.

如果没有使用测试数据库,有什么选项可以告诉更新语句在运行之前会做什么?

mysql sql database testing myisam

80
推荐指数
7
解决办法
9万
查看次数

在MySQL中更改表引擎

我正在使用mysql和mysql工作台.我用innodb引擎创建了5个表.在我将数据插入其中之前,我检查了他们的引擎并且它是innodb.我从5个MyISAM表中插入数据,现在我的innodb表是MyISAM.我无法改变它们.我使用了alter table engine = innodb但它不起作用.

mysql database myisam innodb

47
推荐指数
2
解决办法
5万
查看次数

mysql错误'TYPE = MyISAM'

下面的查询我在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"附近使用正确的语法

任何人都可以建议什么是错的?

php mysql myisam syntax-error

45
推荐指数
4
解决办法
8万
查看次数