我使用一个MySQL数据库来存储来自某个能量测量系统的值。问题是DB包含数百万行,查询要花一些时间才能完成。查询最优吗?我应该做些什么来改进它们呢?
数据库表由15列组成(t、UL1、UL2、UL3、PL1、PL2、PL3、P、Q1、Q2、Q3、CosPhi1、CosPhi2、CosPhi3、i),其中t是时间,P是总幂,i是某些标识符。
当我以不同的间隔(15分钟、1小时、1天、1个月)分组的图形显示数据时,我想将查询分组。
举个例子,我有一个图表显示了本年度的每一天的kWh。收集数据的查询如下:
SELECT t, SUM(P) as P
FROM table
WHERE i = 0
关于
对于任何一个查询,每个请求都需要MariaDB服务器在大约1ms的时间内完成。当并发性增加时,每个请求的查询时间也会增加,直到超时为止。到目前为止,似乎每个mysql服务器实例每秒只能进行2kmax连接,而配置tweeking似乎没有任何效果。是否有办法将每个客户端的查询时间缩短不到0.1ms?
这是查询
select ID from table where id=1;
如果有帮助,下面是mysql配置文件
[client]
port = 3306
socket = /home/user/mysql.sock
[mysqld]
port = 3306
我已经在MySQL中启用了查询和MySQL日志记录,但是我每秒钟都会收到新的条目类型:
2 Query show global status
110925 21:18:18 1 Query select 1
我注意到这些条目来自MySQL工作台(可能是服务器状态监视器)
您知道是否可以从MySQL工作台过滤活动吗?
或者从一个数据库记录查询?
我对SQL查询有问题,它在一个系统(Windows,XAMPP)上执行得很快,而在另一个系统(Ubuntu)上执行得很慢。MySQL设置是否有问题,如果是,如何设置MySQL?我尝试在Ubuntu上设置my.cnf,但没有成功。
SQL查询在phpmyadmin:SELECT id_dev, d.date_add FROM dev_data as d WHERE date_add=( SELECT MAX(date_add) FROM dev_data WHERE id_dev = d.id_dev)中执行。
在使用/2.4.38 (Win64)的Windows上,PHP/7.3.3