我正在优化MySQL查询,但遇到了一个奇怪的问题。我从不使用实时生产数据库,因此我创建了一个转储,并使用mysqldump将其导入到本地计算机上的数据库中,没有额外的选项。
生产数据库上的mysql版本与我的本地虚拟机几乎完全相同:
生产: mysql 14.14远端5.1.61,用于debian gnu (x86_64),使用readline 6.2
虚拟机: mysql 14.14远端5.1.63,debian gnu (x86_64),使用readline6.2
这个查询非常复杂,在生产过程中需要4到5秒左右,但是在VM上所花费的时间不到1秒。我唯一能想到的是,生产数据库上可能有锁阻止查
我想知道,理论中的哪个代码需要更长的时间:
1.
$query = "SELECT Something1, Something2 FROM base WHERE SomeCondition";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
//We do something with $row[0] and row[1]
}
2.
$query = "SELECT Something1 FROM base WHERE SomeCondition&
当我检查GMT time 时是05:40:00,同时在mysql中运行以下查询,
SET time_zone='+00:00'; // to get GMT time
SELECT NOW();
上面的查询是05:37:50。所以在mysql中,我得到了与大约2分钟的时间差。它必须给05:40:00而不是05:37:50。如何解决这个问题?
谢谢你宝贵的时间。
gorm 版本& 包:
❯ docker exec -it mysql mysqld --version
mysqld Ver 5.7.29 for Linux on x86_64 (MySQL Community Server (GPL))
❯ docker exec -it mysql mysql --version
mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
import "github.com/jinzhu/gorm"
两个表:
mysql> d
我通过以下命令在MacOS上使用MySQL命令链接工具:mysql -u root -p;
为了避免重复和节省时间,我尝试使用TextEdit (MacOS的记事本)键入查询,然后将它们复制到MySQL命令提示符中。
这里,当我复制粘贴语法正确的查询时,我注意到了一个问题。例如select * from club where COACHNAME=‘coolname’;