Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL查询执行127秒_Php_Mysql_Sql_Database Schema - Fatal编程技术网

Php MySQL查询执行127秒

Php MySQL查询执行127秒,php,mysql,sql,database-schema,Php,Mysql,Sql,Database Schema,我有一个SQL查询: SELECT * FROM magnitudes t1 INNER JOIN value_magnitudes t2 ON t1.id = t2.magnitude_id WHERE t1.floor_id = 42 AND t2.reading_date = (SELECT Max(reading_date) FROM value_magnitudes WHERE t2.magnitude_id = t1.id); 我的数据库模式是: CREATE TABLE magn

我有一个SQL查询:

SELECT * FROM magnitudes t1 INNER JOIN value_magnitudes t2 ON t1.id = t2.magnitude_id WHERE t1.floor_id = 42 AND t2.reading_date = (SELECT Max(reading_date) FROM value_magnitudes WHERE t2.magnitude_id = t1.id);
我的数据库模式是:

CREATE TABLE magnitudes (
  id INTEGER UNSIGNED  NOT NULL   AUTO_INCREMENT,
  name VARCHAR(255)  NULL  ,
  sdi_id VARCHAR(255)  NULL  ,
  sdi_id_floor VARCHAR(255)  NULL  ,
  visible TINYINT(1) UNSIGNED  NULL  ,
  history TINYINT(1) UNSIGNED  NULL  ,
  created_at DATETIME  NULL  ,
  updated_at DATETIME  NULL  ,
  floor_id INT(11)  NULL  ,
  unit VARCHAR(255)  NULL  ,
  kind_id INT(11)  NULL  ,
  sample_time INT(11)  NULL  ,
  history_from DATETIME  NULL DEFAULT 2011-02-22 11:18:07   ,
PRIMARY KEY(id));

CREATE TABLE value_magnitudes (
  id INTEGER UNSIGNED  NOT NULL   AUTO_INCREMENT,
  value FLOAT  NULL  ,
  magnitude_id INT(11)  NULL  ,
  sdi_belongs_id VARCHAR(255)  NULL  ,
  reading_date DATETIME  NULL  ,
  created_at DATETIME  NULL  ,
  updated_at DATETIME  NULL    ,
PRIMARY KEY(id));
我真正想要的是,根据
magnitudes.id on values\u magnitudes.magnitude\u id


谢谢。

选择VM.*从数值大小VM,其中M.id=VM.id,按描述限制0,1处更新的顺序

一个关于value\u magnizes.magnize\u id的索引会有所帮助-但是你应该总是对一个你正在测试运行缓慢的查询运行一个解释,它会向你展示它在“幕后”是如何工作的,并且是开发者数据库工具Kit的一个重要组成部分实际上我是一个程序员,数据库已经完成了XD,每次我必须在这个数据库中执行SQL查询时,我都很紧张,我不能花时间来改进数据库,或者做一些与数据库相关的事情,只是一些SQL,即使我也不是SQL专家,任何人都帮不上忙,所以我认为stackoverflow是最好的解决方案。顺便说一句,谢谢你的帮助。如果你不能花时间添加索引,或者SQL人员不能为数据库设计添加正确的索引(value_magnificates.magnificates_id与magnificates.id之间的索引应该使用外键约束),那么几乎不可能提高查询速度。谢谢,我会告诉他们,我只是想找到一个解决方案,谢谢。我做这个查询是为了测试
选择前1个VM.*从value\u magnificates VM,magnificates M,其中M.id=VM.magnificate\u id和M.floor\u id=42 ORDER,通过在DESC更新\u
,但执行时间仍然很长,这可能是问题所在?
SELECT TOP 1 VM.* FROM value_magnitudes VM, magnitudes M  WHERE M.id = VM.id ORDER BY updated_at DESC