首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于加速select和insert查询的MySQL数据库配置

问用于加速select和insert查询的MySQL数据库配置
EN

Stack Overflow用户
提问于 2014-05-27 13:47:15
回答 4查看 315关注 0票数 0

有几个DBEngines可用于MySQL DB。目前我使用的是InnoDB。我的实际问题是我有一个包含数百万数据的表。因此,提供给这个表的select查询非常慢。我需要知道应该使用哪种配置来使select查询更快,同时又不影响插入速度。

EN

回答 4

Stack Overflow用户

发布于 2014-05-27 13:54:31

这有点棘手。在此之前,我也遇到了这种问题,最终使用了主从复制。Master处理所有插入,slaves处理所有选择。我所做的是将索引放在从服务器上,以使选择更快。那么主节点将不会有任何索引。除了外键和主键。有时只需要反复试验就可以让数据库运行得更快。

您还可以尝试分区和集群。

票数 0
EN

Stack Overflow用户

发布于 2014-05-27 14:00:53

基本上,您应该开始在表上使用索引,例如,如果您按名称查询,则应该为名称列建立索引。如果使用and子句按名称和某个数字进行查询,则应从不太复杂的列( number )开始创建复合索引。

要找出索引是否丢失,请检查查询执行计划。有关这方面的详细信息,请查看http://dev.mysql.com/doc/refman/5.5/en/execution-plan-information.html和后续章节-

请注意,mysql不支持升序和降序混合索引(例如name ASC,createdate DESC),所以如果你运气不好,你必须摆弄一些辅助表。

最后,如果表中没有外键,可以考虑使用分区表。分区是有意义的,当您的数据可以被分成几个“块”时,如果大多数查询能够将所选数据缩小为几个这样的块,则分区可以大大加快查询速度。有关这方面的详细信息,我建议您访问http://dev.mysql.com/doc/refman/5.5/en/partitioning.html。

在服务器端,检查内存配置。如果您的数据量很大,请检查您的查询是否有ORDER BY子句。如果是,检查是否应该增加排序缓冲区(否则db服务器开始在磁盘上排序,这就像地狱一样慢)。为此,请检查http://dev.mysql.com/doc/refman/5.0/en/server-parameters.html

不幸的是,你的请求有点模糊,应用这些机制总是高度特定于你的需求,但你可以自由地将更多细节(例如表结构,慢查询等)应用到你的请求中,以获得更具体的提示。

票数 0
EN

Stack Overflow用户

发布于 2014-05-27 14:05:07

有一些GUI工具可以帮助你做到这一点,但这是一项技术熟练且范围广泛的工作。因此,它们不会涵盖所有内容,您可能需要使用命令行内容/sql语句等来提供帮助。我可以用来帮助你的一些石灰灯是:

  1. 确实使用了查询优化(使用mysql中的explain等)。开始优化:将"EXPLAIN“放在select前面是查看查询是如何执行的,并确定如何改进它。学习解释输出:http://dev.mysql.com/doc/refman/5.0/en/using-explain.html您通常能够添加新索引/向现有索引添加列来改进内容。但是你也会遇到查询需要restructured.
  2. Make的时候,确保MySQL查询缓存已经设置好并且可以工作,并给它更多的内存,
  3. ,确保你的重要查询没有做任何阻止它们缓存的事情。例如,在查询中使用NOW()函数可以做到这一点--原因很明显--现在每秒都会发生变化!相反,你可以把时间戳放到sql中,并使用时间到最近的分钟/小时/天(你可以逃脱的最大时间段),让mysql获得一些缓存好处。
  4. 它必须正确地配置你的表,缓存在表中的大量数据是有问题的,所以将你的数据分成碎片,并在可能的配置上工作,除非你了解它的更好的情况,否则不要接触配置。概述,包括配置,如果它还没有记录在这里:http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html -我还发现将long_query_time设置为0一天左右,这样所有查询都会记录在这里,这是一个有用的方法,可以准确地了解性能的发展方向。但我不会马上去那里!而且不要让它开着,日志可能会变得很大。

即兴制作和增强工具:

mysql

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23881878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档