我知道之前已经问过这个问题,但大部分时间都会询问与特定数据库或表格有关的问题.我无法在这个网站上找到描述两个引擎及其差异的答案,而不考虑某些特定数据库.
我希望将来能够在设计表或数据库时做出更明智的决策,所以我正在寻找关于两个存储引擎之间差异的全面答案.
MyISAM的设计理念是,您的数据库查询的次数远远超过其更新的数据,因此它可以执行非常快速的读取操作.如果您的读写(插入|更新)比率小于15%,则使用MyISAM更好.
InnoDB使用行级锁定,具有提交,回滚和崩溃恢复功能来保护用户数据.它支持事务和容错
以上MyISAM和InnobDB之间的差异是否正确?如果MYISAM和InnobDB有任何其他限制,请指导.我应该何时使用MyiSAM或何时使用Innodb?谢谢!
我有一个MySQL表,动态插入行.因为我不能确定字符串的长度并且不希望它们被切断,所以我将它们变成varchar(200),这通常比我需要的大得多.给varchar字段的长度是否超过必要的长度?
我在php(mysql)中生成一个报告,
例如:
`select count(id) as tot_user from user_table
select count(id) as tot_cat from cat_table
select count(id) as tot_course from course_table`
Run Code Online (Sandbox Code Playgroud)
像这样我有12张桌子.
我可以在单个查询中进行.如果我做了?流程变慢了?
我环顾四周,发现一些MySQL引擎是innodb和MyISAM.也许还有更多.我的问题是这些数据库引擎是什么?
不同的MySQL引擎有什么区别?更重要的是,我如何决定使用哪一个?
MySql中的MyISAM和Inno数据库类型有什么区别?
我试图弄清楚如何在MySQL中优化一个非常慢的查询(我没有设计这个):
SELECT COUNT(*) FROM change_event me WHERE change_event_id > '1212281603783391';
+----------+
| COUNT(*) |
+----------+
| 3224022 |
+----------+
1 row in set (1 min 0.16 sec)
Run Code Online (Sandbox Code Playgroud)
将其与完整计数进行比较:
select count(*) from change_event;
+----------+
| count(*) |
+----------+
| 6069102 |
+----------+
1 row in set (4.21 sec)
Run Code Online (Sandbox Code Playgroud)
解释声明对我没有帮助:
explain SELECT COUNT(*) FROM change_event me WHERE change_event_id > '1212281603783391'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: me
type: range
possible_keys: PRIMARY
key: PRIMARY
key_len: 8
ref: NULL
rows: 4120213 …Run Code Online (Sandbox Code Playgroud) 我最近开始了一个PoC项目,我们正在开发一个小型的Web应用程序.初始设置在AWS的微实例上完成.我们在rails + mysql堆栈上.
在安装/运行MySQL之后,我发现已经消耗了大约500多MB的RAM; 其余的系统留下的相当少(微型实例只有620 MB RAM).
我们的应用程序在此阶段相当简单.我可以做些什么来减少MySQL服务器消耗的内存吗?
感谢帮助.
mysql memory-management mysql-management amazon-ec2 amazon-web-services
我正在设计一个MySQL数据库,它需要在各种InnoDB表中每秒处理大约600行插入.我当前的实现使用非批处理的预准备语句.但是,写入MySQL数据库瓶颈和队列大小会随着时间的推移而增加.
实现是用Java编写的,我不知道该版本是否有用.它使用MySQL的是Java连接器.我需要考虑转向JDBC明天.我假设这是两个不同的连接器包.
我已经在这个问题上阅读了以下主题:
并从mysql网站:
我的问题是:
是否有人在批处理模式下使用INSERT与预处理语句相比,对使用INSERT具有多个VALUE 的单个语句有关于性能差异的建议或经验.
什么是之间的性能差异MySQL的Java连接器对JDBC.我应该使用其中一个吗?
这些表用于存档目的,并且将看到约90%写入〜10%读取(甚至可能更少).我正在使用InnoDB.这是MyISAM的正确选择吗?
预先感谢您的帮助.
我昨天阅读了以下文章(http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/)并写了以下内容:
MySQL有许多数据库引擎,但你最有可能遇到MyISAM和InnoDB.
默认情况下使用MyISAM.但是,除非您创建一个非常简单或实验性的数据库,否则几乎肯定是错误的选择!MyISAM不支持对数据完整性至关重要的外键约束或事务.此外,无论何时插入或更新记录,整个表都会被锁定:随着使用量的增加,它会对性能产生不利影响.
解决方案很简单:使用InnoDB.
我一直使用MyISAM,因为它是默认的.你怎么看?
如果我要升级到InnoDB,在phpMyAdmin中,我可以编辑每个表并将其更改为innoDB,还是要执行更复杂的过程?
谢谢!
mysql ×10
database ×4
innodb ×3
myisam ×2
performance ×2
amazon-ec2 ×1
java ×1
jdbc ×1
optimization ×1
sql ×1
storage ×1
types ×1