相关疑难解决方法(0)

MySQL性能优化:按日期时间字段排序

我有一个包含大约100.000个博客帖子的表格,通过1:n关系链接到包含50个Feed的表格.当我使用selects语句查询两个表时,由postss表的datetime字段排序,MySQL总是使用filesort,导致查询时间非常慢(> 1秒).这是postings表格的架构(简化):

+---------------------+--------------+------+-----+---------+----------------+
| Field               | Type         | Null | Key | Default | Extra          |
+---------------------+--------------+------+-----+---------+----------------+
| id                  | int(11)      | NO   | PRI | NULL    | auto_increment |
| feed_id             | int(11)      | NO   | MUL | NULL    |                |
| crawl_date          | datetime     | NO   |     | NULL    |                |
| is_active           | tinyint(1)   | NO   | MUL | 0       |                |
| link                | varchar(255) | NO   | MUL | NULL    |                |
| …
Run Code Online (Sandbox Code Playgroud)

mysql performance select

37
推荐指数
1
解决办法
3万
查看次数

如何在JOIN查询中更快地进行ORDER BY?我没有尝试过任何工作

我有以下JOIN查询:

SELECT
    table1.*, 
    table2.*
FROM 
    Table1 AS table1 
LEFT JOIN 
    Table2 AS table2 
USING 
    (col1)
LEFT JOIN 
    Table3 as table3 
USING 
    (col1) 
WHERE 
    3963.191 * 
    ACOS(
    (SIN(PI() * $usersLatitude / 180) * SIN(PI() * table3.latitude / 180)) 
    +
    (COS(PI() * $usersLatitude / 180) * COS(PI() * table3.latitude / 180) * COS(PI() * table3.longitude / 180 - PI() * 37.1092162 / 180))
    ) <= 10 
AND 
    table1.col1 != '1' 
AND 
    table1.col2 LIKE 'A' 
AND 
    (table1.col3 LIKE 'X' OR table1.col3 LIKE 'X-Y') …
Run Code Online (Sandbox Code Playgroud)

mysql join sql-order-by query-optimization

20
推荐指数
2
解决办法
1895
查看次数

如何优化这个MySQL慢(非常慢)的查询?

我有一个2 GB的mysql表,行500k行,我在没有负载的系统上运行以下查询.

select * from mytable 
where name in ('n1', 'n2', 'n3', 'n4', ... bunch more... ) 
order by salary
Run Code Online (Sandbox Code Playgroud)

它需要一个文件存储,并在50到70秒之间完成.

按工资删除订单并在应用程序中进行排序时,总运行时间(包括排序)减少到大约25-30秒.但那仍然太过分了.

知道如何加快速度吗?

谢谢.

mysql optimization

3
推荐指数
1
解决办法
587
查看次数

GROUP BY与ORDER BY数据库速度极慢(似乎创建临时表)

我正在构建一个Twitter应用程序,在twitter上显示已发布的链接,但我在按时间排序表时遇到问题.

tweet
+----------------------------------------+
| tweet_id | [...] | created_at          |
+----------------------------------------+  
| 123456   | [...] | 2012-06-11 11:31:28 |
| 234567   | [...] | 2012-06-11 11:32:55 |
| 345678   | [...] | 2012-06-11 11:33:22 |
+----------------------------------------+

tweets_url
+---------------------+
| tweet_id | url      |
+---------------------+
| 123456   | cnn.com  |
| 123456   | fox.com  |
| 234567   | abc.com  |
| 345678   | abc.com  |
+---------------------+
Run Code Online (Sandbox Code Playgroud)

继承我的SQL(我使用GROUP by只返回唯一的URL):

SELECT tweet_urls.url,
    FROM  `tweets` 
    LEFT JOIN tweet_urls ON tweet_urls.tweet_id = tweets.tweet_id 
    WHERE tweet_urls.url …
Run Code Online (Sandbox Code Playgroud)

mysql sql database-performance

-1
推荐指数
1
解决办法
279
查看次数