小编Tam*_*san的帖子

如何通过mysql中的连接来提高性能顺序

我正在研究社交网络跟踪应用程序.即使连接正常索引也可以正常工作.但是当我添加order by子句时,总查询执行的时间要长100倍.以下查询用于获取没有order by子句的twitter_users.

SELECT DISTINCT  `tracked_twitter`.id
FROM tracked_twitter
INNER JOIN  `twitter_content` ON  `tracked_twitter`.`id` = `twitter_content`.`tracked_twitter_id` 
INNER JOIN  `tracker_twitter_content` ON  `twitter_content`.`id` = `tracker_twitter_content`.`twitter_content_id` 
AND  `tracker_twitter_content`.`tracker_id` =  '88'
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

显示0到19行(总计20行,查询占用0.0714秒)

但是当我添加order by子句时(在索引列上)

SELECT DISTINCT  `tracked_twitter`.id
FROM tracked_twitter
INNER JOIN  `twitter_content` ON  `tracked_twitter`.`id` =  `twitter_content`.`tracked_twitter_id` 
INNER JOIN  `tracker_twitter_content` ON  `twitter_content`.`id` =  `tracker_twitter_content`.`twitter_content_id` 
AND  `tracker_twitter_content`.`tracker_id` =  '88'
ORDER BY tracked_twitter.followers_count DESC 
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

显示0到19行(共计20行,查询占用13.4636秒)

说明 在此输入图像描述

当我单独在其表中实现order by子句时,不需要花费太多时间

SELECT * FROM `tracked_twitter` WHERE 1 order by `followers_count` desc limit 20
Run Code Online (Sandbox Code Playgroud)

显示行0 - 19(总共20行,查询占用0.0711秒)[followers_count:68236387 - …

mysql sql performance inner-join sql-order-by

6
推荐指数
1
解决办法
519
查看次数

无法在运行时使用 docker 映像中的环境变量更改文件的内容

我正在创建一个将在内部运行 java 应用程序的图像。Java 应用程序进程创建命令从映像内部的配置文件获取参数。我想使用环境变量来设置这些配置文件内容。我不知道如何修改这些值。当我只是复制文件时,它只是复制环境变量名称。

FROM base-image
ARG SERVICE=test
ENV SERVICE $SERVICE
COPY runtime.properties /tmp/
RUN chmod 700 /tmp/runtime.properties
# here i am creating java process using those properties
Run Code Online (Sandbox Code Playgroud)

运行时属性

# few lines
SERVICE_NAME='${SERVICE}'
# few lines
Run Code Online (Sandbox Code Playgroud)

containers docker dockerfile docker-compose

4
推荐指数
1
解决办法
8462
查看次数