我使用的是mysql服务器,在该服务器中,我使用以下设置设置了慢查询日志
log-slow-queries=/var/log/mysql/mysql-slow-queries.log
long_query_time=1
log-queries-not-using-indexes
我已经在mysql事件中为每分钟设置了以下事件。
UPDATE mytable SET playing = 0
WHERE playing != 0
AND ( TIMESTAMPDIFF( MINUTE , lastplayed, NOW( )) >10 )
OR (
我想列出两个时间戳之间的id=1记录,最后根据时间戳对它们进行排序。
Mysql查询某些内容:
Select * from test
where (timestamp between 100099323 AND 1423699323) AND id=1
order by timestamp
重新思考数据库中有500多万份文件。
我尝试为简单的mysql查询使用索引:
Select * from test where id=1 order by timestamp
Rethinkdb查询是:
r.table('test').getAll(1, {index: 'id&
我在PHP中对外部MySQL数据库运行一个简单的查询:
$sql = "SELECT COUNT(id) as n FROM `call_history` where extension_number = '0536*500' and flow = 'in' and DATE(initiated) =\"{$initiated}\"";
$rs=mysql_query($sql,$pbx01_conn);
$rs = mysql_fetch_row($rs);
echo $rs['n'];
这似乎要花费很长时间才能
我有一个简单的MySQL查询,当我添加另一个搜索条件时,它无法在9000秒以上的合理时间内进行搜索。第二列(col2)是索引的,所以我不确定如何更快地运行这个查询?Col1设置为全文,在没有第二个条件的情况下运行时运行速度很快。这方面的任何帮助都是很好的。以下是查询的示例:
SELECT *
FROM table
where
match(col1) against('word1') AND
col2 = 'word2'
limit 500000
我有以下两个模型
class Video(models.Model):
name = models.CharField(max_length=200)
class Store(models.Model):
name = models.CharField(max_length=200)
videos = models.ManyToManyField('Video')
现在,我执行以下查询集并打印它的查询
qs = Video.objects.filter(Q(store__name="blockbuster") | Q(pk__in=[1
阅读MySQL ,我们看到了这个具有多列索引name的示例表。
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);
并举例说明索引将或不使用的情况。例如,它将用于这样的查询:
SELECT * FROM test
WHERE last_name='Widenius' AN
我有一个大约有17M行的MySQL表,在这个表中,我最终执行了大量聚合查询。
在本例中,假设我有index_on_b、index_on_c、compound_index_on_a_b、compound_index_on_a_c
我尝试运行一个查询解释
EXPLAIN SELECT SUM(revenue) FROM table WHERE a = some_value AND b = other_value
我发现选择的索引是index_on_b,但是当我使用查询提示时
SELECT SUM(revenue) FROM table USE INDEX(compound_index_on_a_b
我在mySql中有这样的查询:
SELECT field1
FROM table1
WHERE tdate > '2018-6-01' OR (tdate BETWEEN '2015-4-07' AND 2016-6-07);
tdate上的索引或(tdate, field1)上的覆盖索引会更好地改善查询性能吗?
我在我的web服务器上运行下面的MySQL查询,数据库位于一个单独的服务器上:
$sql="select * from call_history where extension_number = '0536*500' and flow = 'in' and DATE(initiated) = '".date("Y-m-d")."' ";
$rs=mysql_query($sql,$pbx01_conn);
echo mysql_num_rows($rs).' Calls IN';
c
假设我有一个包含字段a、b、c、local_time和e的mysql innoDB表Foo。Foo具有名为foo_index的复合索引:(a,b,c,local_time)
下面的查询会利用foo_index对local_time进行过滤吗?
SELECT count(*) AS cnt
FROM Foo force index(foo_index)
WHERE (a = '332719'
AND b IN ('2', '-3')
AND c = '1'
AND local_time > '20
我正在读“高性能MySQL",O‘’Reilly,第二版。第122页:
MySQL不能在索引中执行类似的操作。等
在同一页中,后面的示例是(对参与者、标题、prod_id有一个索引):
EXPLAIN SELECT * FROM products JOIN ( SELECT prod_id FROM products WHERE actor='SEAN CARREY' AND title LIKE '%APOLLO%' ) AS t1 ON (t1.prod_id=pr
我使用MySQL作为数据库并通过PHP抓取消息,所以我的问题是我不太了解MySQL,而且我的查询需要很长时间才能抓取消息,我的messages表有731,847行 我的问题是: SELECT DISTINCT
c.from_id,
c.to_id
FROM
messages c
JOIN(
SELECT CASE WHEN
`from_id` = '15' THEN `to_id` ELSE `from_id`
END AS other,
MAX(TIME) AS latest
FROM
messages
WHE
我经常使用以下查询:
SELECT * FROM table WHERE Timestamp > [SomeTime] AND Timestamp < [SomeOtherTime] and publish = 1 and type = 2 order by Timestamp
我想优化这个查询,我正在考虑将时间戳作为聚集索引的主键的一部分,我认为如果时间戳是主键的一部分,表中插入的数据已经按时间戳field.Also顺序写入磁盘--我认为这大大改进了我的查询,但不确定这是否有帮助。
table has 3-4 million+ rows.
timestamp field neve
尽管标题列是通过使用以下查询添加为索引的:
ALTER TABLE Recipe ADD INDEX Title_idx (Title)
MySQL没有将该索引用于此查询:
SELECT * FROM Recipe
WHERE Title LIKE '%cake%';
我使用了EXPLAIN关键字,关键字段是NULL。
如何解决这个问题?我必须改进这个查询。
UPDATE album SET x=1 WHERE store_id=:store_id && type=:type && time<:time
我有一个Mysql更新查询,我的问题是如何设置这个查询的索引?
我在phpMyadmin中创建索引,我应该选择store_id,键入,时间在一起并创建一个索引吗?
所以我有一个MYSQL db,其中布尔值存储为binary(1)。我要研究为什么某些查询是缓慢的,即使在相关列上有一个索引。问题是,在构建SELECT查询时,系统使用了setBoolean方法PreparedStatement,据我所知,该方法将值转换为MYSQL TINYINT。查询找到了正确的行,但没有使用索引,因为索引位于二进制列上。但是,如果我使用setString方法并将布尔值转换为字符串,即'0' for false和'1' for true,MYSQL就能够使用索引并快速找到想要的行。
基本上,第一个查询是我使用setBoolean时得到的,第二个
我在MySQL中有一个表,其中包含以下内容:
我将使用where子句查询名为'trade_time‘的DATETIME列,如下所示:
SELECT * FROM tick_data.AAPL
WHERE trade_time between '2021-01-01 09:30:00' and '2021-01-01 16:00:00';
我得到的是一个2013年的错误:大约30秒后失去了与MySQL服务器的连接。
我是SQL的新手,所以我很确定我在这里可能做错了什么,这样简单的查询应该不会超过30秒?
数据有2.98亿行,这是巨大的,我的印象是
我有一个名为'test‘的简单MySQL表,其中有两列:
调用'id'Varchar(3000)列的自动增量int列称为“textcol”
我在表中创建了一个索引,该索引是基于“textcol”列的。但是,ORDER查询似乎没有使用索引,即在一个简单查询上的EXPLAIN语句在文本中的ORDER显示为NULL,并且在其输出的键列中显示为NULL,并且还使用文件。
任何要更改以帮助使用ORDER索引的指针对我来说都是有用的。
由"mysql -版本“命令提供的MySQL版本:
mysql Ver 14.14远端5.1.58,用于使用readline 6.2的deb
考虑一下"Query1",这很费时。"Query1“不是静态的,它依赖于$language_id参数,这就是为什么我不能将它保存在服务器上。我想用另一个查询语句来查询这个"Query1“。我想,这应该很快。我想大概有两种方法
$result = mysql_query('SELECT * FROM raw_data_tbl WHERE ((ID=$language_id) AND (age>13))“);
然后呢?在这里,我想获取结果,并请求它如下所示:
$result2 = mysql_query('SELECT * FROM $re
这是用于InnoDB和MySQL 5.7的。
如果我有这样的查询:
SELECT A, B, C FROM TABLE WHERE STRCMP(D, 'somestring') > 0
是否可以在D上建立一个可供查询使用的索引?也就是说,MySQL是否足够聪明地为STRCMP函数使用btree索引?
如果没有,我如何才能重新设计查询(和/或表),以便能够对D进行字符串比较,并且可以进行某种形式的剪枝,从而不必命中每一行?
我们只是迁移我们所有的mysql like %%查询来匹配
我们的旧查询waS
SELECT * from jobs where jobtitle like '%php%'
我尝试了以下查询
SELECT * from jobs where MATCH(jobtitle) AGAINST ('php')
SELECT * from jobs where MATCH(jobtitle) AGAINST ('php' IN BOOLEAN MODE)
我尝试了*+,但所有查询都显示了相同的结果,如'%php%‘
我希望mysql查询使用匹
我的问题是当我试图获取大量记录的咨询返回计数时引起的(示例500.000):
示例:
$limit = ' LIMIT 0,30';
$ResultQuery = mysql_query("
SELECT id, name, description, date
FROM products
WHERE name
LIKE 'dog%'".$limit);
$CountQuery = mysql_query("
SELECT COUNT(id)
FROM products
W
假设你有这样的查询..。
SELECT T.TaskID, T.TaskName, TAU.AssignedUsers
FROM `tasks` T
LEFT OUTER JOIN (
SELECT TaskID, GROUP_CONCAT(U.FirstName, ' ',
U.LastName SEPARATOR ', ') AS AssignedUsers
FROM `tasks_assigned_users` TAU
INNER JOIN `users` U ON (
我有一个包含大约500,000条记录的mySQL表。该表的大小约为45MB。第一次执行查询时,每次都需要近20秒,但随后的查询速度很快。如果我注销,然后重新登录,查询仍然很快。如果我4-5小时后再来。同样的查询又慢了一次。
查询非常简单。
$query = "select * from tableName where uniqueID='$passedID' ORDER BY tableName ASC";
$result = mysql_query($query) or die('Query failed: ' . mysql_error())
在我们的应用程序中,我们有一个显示用户数据集的页面,它实际上是其中的一部分。它还允许用户按自定义字段对其进行排序。最后,这一切都归结为这样的查询:
SELECT name, info, description FROM mytable
WHERE active = 1 -- Some filtering by indexed column
ORDER BY name LIMIT 0,50; -- Just a part of it
只要表的大小相对较小(仅在我们部门使用),这种方法就能很好地工作。但是现在我们必须扩展这个应用程序。让我们假设,这个表有大约一百万条记录(我们预计很快就会发生)。订
我使用嵌套集在MySql中表示树。
树有几种不同的“类型”,每个用户都可以拥有一棵不同类型的树。
这张桌子看起来是这样的:
CREATE TABLE folders (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
typeId TINYINT(1) UNSIGNED NOT NULL,
userId INT UNSIGNED NOT NULL,
lft INT NOT NULL,
rgt INT NOT NULL,
title VARCHAR(50) DEFAULT NULL,
PRIMARY KEY