小编Sal*_*00m的帖子

同一集群中的不同解释计划

我有这个查询的问题:

SELECT 
    uca.user_activity_id,
    uca.user_call_id,
    uca.call_activity_id,
    uca.user_activity_token,
    uc.call_group_id,
    uc.user_id
FROM users_calls_activities uca
INNER JOIN users_calls_activities uca2 ON uca2.user_activity_id = uca.user_activity_is_validated_with
    AND aux.user_call_id = 1744136
INNER JOIN users_calls uc ON uc.user_call_id = uca.user_call_id;
Run Code Online (Sandbox Code Playgroud)

我们有一个带有percona服务器的集群(5.6.29),在Azure中有5个节点(从0到4).节点0-3和4之间的区别在于,第一个节点在平衡器中,节点4在平衡器之外(但在集群中)

问题是在四个服务器(节点0-3)中查询真的很慢(15秒)而在另一个(节点4)中查询真的很快(0,002)

Afaik,解释计划应该是相同的,但我执行一个EXPLAIN,结果是这样的:

节点0-3(慢)

+----+-------------+-------+------+-------------------------------------------------------------+--------------+---------+-------------------------------+---------+---------------------------------------+
| id | select_type | table | type | possible_keys                                               | key          | key_len | ref                           | rows    | Extra                                 |
+----+-------------+-------+------+-------------------------------------------------------------+--------------+---------+-------------------------------+---------+---------------------------------------+
|  1 | SIMPLE      | uca2  | ref  | PRIMARY,user_call_id,user_call_id_2                         | user_call_id | 4       | const                         |       1 | Using …

mysql percona

12
推荐指数
1
解决办法
160
查看次数

条件左边加入CriteriaQuery

大家好我想在CriteriaQuery中做这个,我搜索了这么久但我找不到任何可以做到的,有人可以帮助我吗?

SELECT b.name
FROM Empl a 
LEFT OUTER JOIN Deplo b ON (a.id_depl = b.id_depl) AND b.id_place = 2;
Run Code Online (Sandbox Code Playgroud)

我只是试图在左连接子句中做一个条件,我看到".on"函数,但我不知道它是否会起作用以及它是如何工作的,因为我试图做这样的事情:

Join Table1, Table2j1 = root.join(Table1_.table2, JoinType.LEFT).on(cb.and(cb.equal(table2_.someid, someId)));
Run Code Online (Sandbox Code Playgroud)

但它需要一个布尔表达式.

orm jpa clause left-join criteriaquery

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

PHP空白页面,没有错误

我有一个PHP页面,我在本地开发并且工作正常.将它上传到服务器后,我现在只得到一个空白的白色屏幕?它是完全相同的代码,在本地工作正常但不远程.我已尝试设置错误报告,但仍然没有给我任何错误,只是一个空白的白色屏幕.

编辑----------代码:

    $firstname = $phone = $email = $picture = $sqlcon = "";
    $firstnameErr = $phoneErr = $emailErr = $pictureErr = $sqlErr = $filterErr = "";
    $statusmsg = "";
    $newpicture = $registered = "false";

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

        // If the user has not entered a firstname and has not entered details previously
        if ((empty($_POST["firstname"])) && empty($_POST["hfirst"])) {

            $firstnameErr = "Firstname is required for submission";
        }
        else {

            if (!empty($_POST["firstname"])) {

                $firstname = $_POST["firstname"];
            }
            else {

                $firstname = …
Run Code Online (Sandbox Code Playgroud)

php

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

clause ×1

criteriaquery ×1

jpa ×1

left-join ×1

mysql ×1

orm ×1

percona ×1

php ×1