ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

TokuDB没有MySQL快得多

2019-08-05 19:14:56  阅读:307  来源: 互联网

标签:mysql innodb tokudb


我已将具有80.000.000行的MySQL数据库转换为TokuDB.

现在我跑的时候:

 select count(id) from xxx where active=1

它需要90%的正常MySQL请求时间.

我有什么需要进一步优化以便它运行得更快?

表定义:

CREATE TABLE `adsDelivered` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `uid` varchar(40) NOT NULL,
  `_adsDelivered` bigint(20) NOT NULL DEFAULT '0',
  `_campaign` bigint(20) NOT NULL DEFAULT '0',
  `_ad` bigint(20) NOT NULL DEFAULT '0',
  `session` varchar(44) NOT NULL,
  `referer` text NOT NULL,
  `refererDomain` varchar(256) NOT NULL,
  `pageTime` int(11) NOT NULL DEFAULT '0',
  `pageVisibleTime` int(11) NOT NULL DEFAULT '0',
  `browser` varchar(256) NOT NULL,
  `ip` varchar(15) NOT NULL,
  `clicks` int(11) NOT NULL DEFAULT '0',
  `clickTimeLast` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `tag` varchar(256) NOT NULL,
  `countryShort` varchar(2) NOT NULL,
  `timeCreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `timeUpdated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  PRIMARY KEY (`id`),
  UNIQUE KEY `uid` (`uid`),
  KEY `_campaign` (`_campaign`),
  KEY `_ad` (`_ad`),
  KEY `_adsDelivered` (`_adsDelivered`),
  KEY `session` (`session`),
  KEY `tag` (`tag`),
  KEY `ip` (`ip`),
  KEY `countryShort` (`countryShort`),
  KEY `refererDomain` (`refererDomain`)
) ENGINE=TokuDB AUTO_INCREMENT=7420143 DEFAULT CHARSET=utf8;

解决方法:

我为Tokutek工作.这里的答案大多是好的.正如Justin所提到的,您需要正确的索引,并且您的架构可能没有正确的索引.我很高兴听到TokuDB比InnoDB快一点,但是对于表扫描,假设表没有老化,它可以采用任何一种方式.

这是我给索引的一个话题,你可能会觉得有用:http://www.youtube.com/watch?v=vaGAoK66ctM.

上半部分是关于索引的,下半部分是在技术上潜入白板上的分形树.希望这有助于您进行索引设计.我强烈建议您了解TokuDB提供的聚类二级索引.

在其他方面. RolandoMySQLDBA对于InnoDB和TokuDB的执行方式大多是正确的.以下是如何考虑TokuDB的性能.虽然数据集适合内存,但TokuDB的分形树与InnoDB或其他基于B树的存储引擎相比没有任何固有的优势.当数据很大并且不适合主存储器时,瓶颈或者更确切地说是悬崖. InnoDB的写入性能和其他基于B树的存储引擎的写入性能从悬而未决,TokuDB的性能保持水平.这表明您从TokuDB中获取了一些东西. TokuDB不会采用一些运行良好的现有系统并提高其性能. TokuDB将使系统在内存中运行良好,但在内存不足时开始崩溃,并确保这些系统在数据增长时表现良好.这就是Percona展示的基准测试,即iiBench(http://www.tokutek.com/resources/benchmarks/#iiBench)正在发生的事情.

将此写入性能与TokuDB的压缩相结合,突然聚类索引(如索引通话中所述)变得相对便宜.保持更好的索引变得更便宜.使用更好的索引,查询中的大量I / O可能会消失,并且查询吞吐量会提高.这就是人们可以从TokuDB中受益的方式.

标签:mysql,innodb,tokudb
来源: https://codeday.me/bug/20190805/1591506.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有