在像更新、插入、删除这样的查询时,什么是最好的Mysql db引擎?(99%的时间没有完成)
数据库有很多项,主要是数字数据类型,select查询基于条件语句,比较数值和返回结果。
我应该在这里使用MyISAM吗?
还有一件事是数据库将同时被多个用户使用。
谢谢
发布于 2011-07-15 16:54:41
由于三个主要原因,我将使用MyISAM over InnoDB
MyISAM表仅由三个文件组成
只需对表的行格式进行简单更改,就可以对MyISAM表进行优化,以获得更快的读取速度。
例如,“MySQL数据库的设计与优化”一书第71-73页建议对MyISAM表这样做:
ALTER TABLE tblname ROW_FORMAT=Fixed;这将在内部将所有的VARCHAR转换为字符。它还将使MyISAM表大约大50%,但是增加了读取性能,因为字符串长度是用VARCHAR更严格地检查的,而CHAR长度是固定的。
作为另一种选择,您可以在MyISAM表上运行myisampack,以减小MyISAM表的大小,并创建新的只读格式。
这是您可以在任何MyISAM表上执行的一次性操作。更改InnoDB表上的行格式有些无用,因为它的聚集索引布局(在第3号理由中解释)
MyISAM只缓存索引页.InnoDB缓存数据和索引页。因此,您可以配置比MyISAM缓冲池更小的InnoDB密钥缓存。
InnoDB的功能是在启动时恢复崩溃,即使没有什么问题(预防)
InnoDB总是对数据行执行MVCC.。这为一所从不因插入、更新或删除而变得凌乱的房子创造了额外的家务清理。
InnoDB一直在执行双索引查找,特别是在使用非唯一索引时.发生这种情况的原因是InnoDB的内部rowid索引,它与聚集索引密切相关。
通过在/etc/my.cnf中有以下内容,您可以绕过InnoDB启动
[mysqld]
skip-innodb因此,MySQL将更快地重新启动。还可以删除/var/lib/mysql/ibdata1 1、/var/lib/mysql/ib_logfile0和/var/lib/mysql/ib_logfile1 1。
如果数据足够小,请在RAM磁盘上挂载/var/lib/mysql。然后,将MyISAM与InnoDB进行比较的所有赌注都被取消了。
发布于 2011-07-15 15:11:40
http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/
如果您设置在内存中运行db,则InnoDB的性能将优于myiasm。那就是如果你能把它装进记忆里。
https://serverfault.com/questions/290743
复制相似问题