加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL / MariaDB在多个核上运行单个查询

发布时间:2021-03-06 01:49:48 所属栏目:编程 来源:网络整理
导读:我有一个相等强盛的数据库处事器,有约莫24个内核和48 GB的RAM.我们正在运行MariaDB 10.0作为我们的数据库引擎.我的全部表都在InnoDB引擎上运行.我有一些查询在大表上行使相等普及的毗连,因此天然很慢.我正在全力做的一件事是实行操作多核的力气.以下是我的观

我有一个相等强盛的数据库处事器,有约莫24个内核和48 GB的RAM.我们正在运行MariaDB 10.0作为我们的数据库引擎.我的全部表都在InnoDB引擎上运行.我有一些查询在大表上行使相等普及的毗连,因此天然很慢.我正在全力做的一件事是实行操作多核的力气.以下是我的调查:

>假如我并行运行2个查询,那么我可以看到正在行使2个焦点
>假如我运行1个查询,我看到只有1个焦点被用于100%

此刻,这是正常举动吗?我的意思是,MariaDB / MySQL中没有步伐为单个查询行使多个焦点?假如行使多个CPU焦点可以更快地运行单个沉重的查询,那将会很棒.

我实行搜刮多个论坛,并行使差异的参数,如Innodb_thread_cocurrency,但到今朝为止还没能在多个焦点上运行单个查询.

有没有其他引擎可以辅佐我做到这一点(我今朝正在阅读XtraDB)?

更新:

好吧,现实上我正试图说明交际媒体数据.想象一下拥有2-3百万条推文的数据库.虽然,我们正在接头与USer数据,主题标签,图像,链接等相干联的表.以是总的来说是一个相等大的数据库.在某些环境下,有些查询必要在多个表长举办某些毗连,而且天然很慢.因此,想象一下,譬喻一个带有5-6个差异查询的仪表板查询.当单个用户登录时,这会将负载放在单个焦点上,而且整个焦点的行使时刻为n秒.假如我有12个内核,假设有12个用户同时实行会见体系,那么我就会碰着严峻的瓶颈.我完全领略,分片,聚集,漫衍式数据库,分区等选项可以辅佐我.可是此刻我正在实行相识在我查察程度扩展(个中我引入更多处事器)之前怎样最好地垂直扩展体系.行使多个内核原来是一个很好的选择,但我想此刻我大白了,MySQL自己并不是这样计划的.我想我将开始研究各类[也许的架构,以便在多个实例上扩展数据库.

最佳谜底 固然这个帖子高出半年,但有些评述引起了一些忧虑.作为一个硬核数据库机能调优器,我想在这里添加一点输入:

1)在撰写本文时,MariaDB和MySQL不支持在多个处理赏罚器上运行单个查询(除非您正在接头分片).这并不料味着他们未来不会支持它.

2)并行查询可以在其他RDBMS(DB2,Oracle,SQLServer,Postgres等)中完成,它是数据客栈等情形的重要特征.

3)对付长时刻运行的查询,凡是并行化会收缩执行时刻,尽量改造也许不是线性的.因此,说“一个查询行使多个焦点使其更快地事变”是不正确的.除非我们对“更快地事变”有差异的界说,不然它对某些事变负载很是故意义.

4)Bottelnecking CPU并不必然意味着“你正在以错误的方法行使数据库”.是的,有些人确实写了可骇的查询(或驱动查询的措施)并将数据库抹杀致死,但这完满是另一个题目.

5)并行性会低落并发性.假如您的方针是支持更多用户(即更高的并发性),则必需放弃在多个处理赏罚器上运行查询(可能仅在每个查询的较少处理赏罚器上运行).这是你必要做出的衡量.存在太过泛化的风险,您但愿OLTP情形查询以串行方法运行,而且OLAP查询并行运行.

干杯!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读