Mysql 当记录超过100万条且不断增长时,如何提高select查询的性能

Mysql 当记录超过100万条且不断增长时,如何提高select查询的性能,mysql,database,select,database-performance,Mysql,Database,Select,Database Performance,我有一个表,每秒至少接收10个不同来源的数据。 我已经将我的表划分为几个月,每个月我创建一个表并将数据填充到表中。每个表将至少保存100万条记录。 我有6个字段作为主键,索引了7个字段。 我没有更改MySQL中的任何其他设置(Ubuntu附带的默认设置)。 只有两个查询将在表上运行(插入和选择) 我发现数据库使我的应用程序运行缓慢。 有没有提高查询性能的方法。您可以尝试,包括和,这可能对执行速度有很大影响。首先,在处理MySQL性能时,我们需要知道您使用的引擎 第二,我们需要缩小可能出现的性能问

我有一个表,每秒至少接收10个不同来源的数据。

我已经将我的表划分为几个月,每个月我创建一个表并将数据填充到表中。每个表将至少保存100万条记录。

我有6个字段作为主键,索引了7个字段。

我没有更改MySQL中的任何其他设置(Ubuntu附带的默认设置)。

只有两个查询将在表上运行(插入和选择)

我发现数据库使我的应用程序运行缓慢。


有没有提高查询性能的方法。

您可以尝试,包括和,这可能对执行速度有很大影响。

首先,在处理MySQL性能时,我们需要知道您使用的引擎

第二,我们需要缩小可能出现的性能问题。我想说的是,与SELECT相比,INSERT访问可能有更大的问题。因为,事实上,即使SELECT查询速度较慢,但如果查询本身比较复杂,插入操作也会非常频繁,并可能导致系统崩溃(或者最终导致系统速度减慢,从而导致SELECT速度减慢)

因此,为了加快插入的速度,我建议只保留真正需要的索引(通常是SELECT WHERE子句中使用的列),这将是一个严重的改进


至于SELECT本身的优化,如果不查看查询,很难进一步帮助您。

一个包含六个字段的复合主键?哇,你真的应该使用系统密钥。在一个表中添加太多索引也可能有害,您应该将列表缩小到您真正需要的索引。您现在的查询时间是多少?@jaya hi如果您通过搜索选择数据,则意味着您可以使用全文搜索(MATCH AGANIST)。。。。。。。。。当我选择多个表时,每个查询的时间是3秒。当我从一个带有主键或索引键的表中选择数据时,时间为0.30秒。当我选择非主索引键或非索引键时,它是2秒。6个主索引字段听起来非常错误。如果您需要帮助,您必须告诉更多信息:表模式、正在进行的精确查询、索引定义。如果必须,您可以匿名,但不要遗漏任何内容