相关疑难解决方法(0)

MyISAM与InnoDB

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

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

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

mysql database performance myisam innodb

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

如何使用索引优化InnoDB上的COUNT(*)性能

我有一个很大但很窄的InnoDB表,记录大约9米.在桌子上count(*)count(id)桌子上做的非常慢(6秒以上):

DROP TABLE IF EXISTS `perf2`;

CREATE TABLE `perf2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `channel_id` int(11) DEFAULT NULL,
  `timestamp` bigint(20) NOT NULL,
  `value` double NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `ts_uniq` (`channel_id`,`timestamp`),
  KEY `IDX_CHANNEL_ID` (`channel_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

RESET QUERY CACHE;
SELECT COUNT(*) FROM perf2;
Run Code Online (Sandbox Code Playgroud)

虽然声明不经常运行,但优化它会很好.根据http://www.cloudspace.com/blog/2009/08/06/fast-mysql-innodb-count-really-fast/,这可以通过强制InnoDB使用索引来实现:

SELECT COUNT(id) FROM perf2 USE INDEX (PRIMARY);
Run Code Online (Sandbox Code Playgroud)

解释计划似乎很好:

id  select_type table   type    possible_keys   key     key_len ref     rows    Extra
1   SIMPLE      perf2   index   NULL            PRIMARY 4 …
Run Code Online (Sandbox Code Playgroud)

mysql innodb

26
推荐指数
3
解决办法
4万
查看次数

对于相同的"where"子句,select count(*)比select*长得多

对于具有相同where子句的查询,我发现select count(*)select*花费的时间要长得多.

该表有大约220万条记录(称之为详细信息表).它有一个链接到另一个表(维护)的外键字段.

此查询大约需要10-15秒:

select count(*) from detailtable where maintableid = 999
Run Code Online (Sandbox Code Playgroud)

但这需要一秒钟或更短时间:

select * from detailtable where maintableid = 999
Run Code Online (Sandbox Code Playgroud)

更新 - 有人要求指明所涉及的记录数量.这是150.

更新2以下是使用EXPLAIN关键字时的信息.

对于SELECT COUNT(*),EXTRA列报告:

Using where; Using index
Run Code Online (Sandbox Code Playgroud)

KEYPOSSIBLE KEYS都有外键约束作为它们的值.

对于SELECT*查询,除了EXTRA之外,一切都是相同的:

Using Where
Run Code Online (Sandbox Code Playgroud)

更新3尝试OPTIMIZE TABLE,它仍然没有什么区别.

mysql

10
推荐指数
1
解决办法
785
查看次数

标签 统计

mysql ×3

innodb ×2

database ×1

myisam ×1

performance ×1