第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL 語句在 laravel 中執(zhí)行需要 26 秒,在 phpmyadmin 中需要

SQL 語句在 laravel 中執(zhí)行需要 26 秒,在 phpmyadmin 中需要

PHP
Qyouu 2023-04-15 17:12:31
我有一個涉及 6 個表的 sql 語句,在 laravel 中執(zhí)行它需要 26 秒,但相同的 sql 語句在 phpmyadmin 中大約需要 0.0075 到 .0089 秒。這是我在 laravel 中的代碼:use DB;    $partidas = DB::select("SELECT A.Patente, A.Pedimento, A.SeccionAduanera, A.Fraccion, A.SecuenciaFraccion, A.ValorComercial, A.PrecioUnitario, A.CantidadUMComercial, A.UnidadMedidaComercial, A.CantidadUMTarifa, A.UnidadMedidaTarifa, A.MetodoValorizacion, A.PaisOrigenDestino, A.PaisCompradorVendedor,                                                  B.ClavePermiso, B.NumeroPermiso,                                                 C.ClaveCaso, C.IdentificadorCaso, C.ComplementoCaso,                                                 D.ClaveContribucion, D.FormaPago, D.ImportePago,                                                 E.TasaContribucion, E.TipoTasa,                                                 F.Observaciones                                        FROM `551` A                                        INNER JOIN `553` B ON B.Fraccion = A.Fraccion                                                AND (A.SecuenciaFraccion = B.SecuenciaFraccion)                                                AND (A.auditoria_id = 4 AND B.auditoria_id = 4)                                                AND (A.Patente = '3452' AND B.Patente = '3452')                                                AND (A.Pedimento = '0000180' AND B.Pedimento = '0000180')                                                 AND (A.SeccionAduanera = '430' AND B.SeccionAduanera = '430')                                        ");                dd($partidas);我需要知道我是否可以用雄辯的方式或其他方式發(fā)表聲明,以便在 Laravel 中獲得更好的表現(xiàn)。
查看完整描述

3 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗 獲得超5個贊

是的,總有改進(jìn)的余地。

  • 從使用Eloquent Relationship而不是原始 mysql 開始。如果你打算使用 Laravel,那么請仔細(xì)閱讀文檔,沒有比這更容易的了。

  • 其次,使用select()來盡量減少不必要的數(shù)據(jù)使用/消耗。優(yōu)化代碼是一項很好的技能。

  • 正確使用數(shù)據(jù)類型。

    A.Patente = '3452'如果您的 Patente 是int類型,那么與string進(jìn)行比較將花費(fèi)更多的處理時間。而是做A.Patente = 3452。將 int 與 int 進(jìn)行比較。

我相信當(dāng)您按照這些步驟操作時,您的查詢不會超過 1 秒。


查看完整回答
反對 回復(fù) 2023-04-15
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

應(yīng)該注意的是,我做了刪除表的測試,例如我從 A 和 B 開始,它運(yùn)行良好,ABC 等。直到 F 開始出現(xiàn)緩慢的問題,我想這是因為我有太多的表和記錄審查,直到 Pablete 給了我這個選項并且它起作用了。


句子如下:


$partidas = DB::select("SELECT A.Patente, A.Pedimento, A.SeccionAduanera, A.Fraccion, A.SecuenciaFraccion, A.ValorComercial, A.PrecioUnitario, 

                                        A.CantidadUMComercial, A.UnidadMedidaComercial, A.CantidadUMTarifa, A.UnidadMedidaTarifa, A.MetodoValorizacion, A.PaisOrigenDestino, 

                                        A.PaisCompradorVendedor, 

                                        B.ClavePermiso, B.NumeroPermiso, 

                                        C.ClaveCaso, C.IdentificadorCaso, C.ComplementoCaso, 

                                        D.ClaveContribucion, D.FormaPago, D.ImportePago, 

                                        E.TasaContribucion, E.TipoTasa, 

                                        F.Observaciones 

                                FROM `551` A 

                                LEFT JOIN `553` B ON B.Fraccion = A.Fraccion AND (A.SecuenciaFraccion = B.SecuenciaFraccion) AND (A.auditoria_id = B.auditoria_id) AND (A.Patente = B.Patente) AND (A.Pedimento = B.Pedimento) AND (A.SeccionAduanera = B.SeccionAduanera) 

                                LEFT JOIN `554` C ON C.Fraccion = B.Fraccion AND (B.SecuenciaFraccion = C.SecuenciaFraccion) AND (B.auditoria_id = C.auditoria_id) AND (B.Patente = C.Patente) AND (B.Pedimento = C.Pedimento) AND (B.SeccionAduanera = C.SeccionAduanera) 

                                LEFT JOIN `557` D ON D.Fraccion = A.Fraccion AND (A.SecuenciaFraccion = D.SecuenciaFraccion) AND (A.auditoria_id = D.auditoria_id) AND (A.Patente = D.Patente) AND (A.Pedimento = D.Pedimento) AND (A.SeccionAduanera = D.SeccionAduanera) 

                                LEFT JOIN `556` E ON E.Fraccion = A.Fraccion AND (A.SecuenciaFraccion = E.SecuenciaFraccion) AND (A.auditoria_id = E.auditoria_id) AND (A.Patente = E.Patente) AND (A.Pedimento = E.Pedimento) AND (A.SeccionAduanera =  E.SeccionAduanera) 

                                LEFT JOIN `558` F ON F.Fraccion = A.Fraccion AND (A.SecuenciaFraccion = F.SecuenciaFraccion) AND (A.auditoria_id = F.auditoria_id) AND (A.Patente = F.Patente) AND (A.Pedimento = F.Pedimento) AND (A.SeccionAduanera = F.SeccionAduanera)

                                Where A.auditoria_id = 4

                                And A.Patente = '3452'

                                And A.Pedimento = '0000180'

                                And A.SeccionAduanera = '430'

                                ");


查看完整回答
反對 回復(fù) 2023-04-15
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗 獲得超3個贊

試試這個它可能有時間像你的 phpmyadmin


<?php


use DB;


$pdo = DB::connection()->getPdo();


$SQL = "SELECT A.Patente, A.Pedimento, A.SeccionAduanera, A.Fraccion, A.SecuenciaFraccion, A.ValorComercial, A.PrecioUnitario, A.CantidadUMComercial, A.UnidadMedidaComercial, A.CantidadUMTarifa, A.UnidadMedidaTarifa, A.MetodoValorizacion, A.PaisOrigenDestino, A.PaisCompradorVendedor,  

        B.ClavePermiso, B.NumeroPermiso, 

        C.ClaveCaso, C.IdentificadorCaso, C.ComplementoCaso, 

        D.ClaveContribucion, D.FormaPago, D.ImportePago, 

        E.TasaContribucion, E.TipoTasa, 

        F.Observaciones

    FROM `551` A

    INNER JOIN `553` B ON B.Fraccion = A.Fraccion

        AND (A.SecuenciaFraccion = B.SecuenciaFraccion)

        AND (A.auditoria_id = 4 AND B.auditoria_id = 4)

        AND (A.Patente = '3452' AND B.Patente = '3452')

        AND (A.Pedimento = '0000180' AND B.Pedimento = '0000180') 

        AND (A.SeccionAduanera = '430' AND B.SeccionAduanera = '430')

    INNER JOIN `554` C ON C.Fraccion = A.Fraccion 

        AND (A.SecuenciaFraccion = C.SecuenciaFraccion)

        AND (A.auditoria_id = 4 AND C.auditoria_id = 4)

        AND (A.Patente = '3452' AND C.Patente = '3452')

        AND (A.Pedimento = '0000180' AND C.Pedimento = '0000180') 

        AND (A.SeccionAduanera = '430' AND C.SeccionAduanera = '430')

    INNER JOIN `557` D ON D.Fraccion = A.Fraccion 

        AND (A.SecuenciaFraccion = D.SecuenciaFraccion)

        AND (A.auditoria_id = 4 AND D.auditoria_id = 4)

        AND (A.Patente = '3452' AND D.Patente = '3452')

        AND (A.Pedimento = '0000180' AND D.Pedimento = '0000180') 

        AND (A.SeccionAduanera = '430' AND D.SeccionAduanera = '430')

    INNER JOIN `556` E ON E.Fraccion = A.Fraccion 

        AND (A.SecuenciaFraccion = E.SecuenciaFraccion)

        AND (A.auditoria_id = 4 AND E.auditoria_id = 4)

        AND (A.Patente = '3452' AND E.Patente = '3452')

        AND (A.Pedimento = '0000180' AND E.Pedimento = '0000180') 

        AND (A.SeccionAduanera = '430' AND E.SeccionAduanera = '430')

    INNER JOIN `558` F ON F.Fraccion = A.Fraccion 

        AND (A.SecuenciaFraccion = F.SecuenciaFraccion)

        AND (A.auditoria_id = 4 AND F.auditoria_id = 4)

        AND (A.Patente = '3452' AND F.Patente = '3452')

        AND (A.Pedimento = '0000180' AND F.Pedimento = '0000180') 

        AND (A.SeccionAduanera = '430' AND F.SeccionAduanera = '430')

";


$stmt = $pdo->prepare($SQL);

$stmt->execute();


var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));


查看完整回答
反對 回復(fù) 2023-04-15
  • 3 回答
  • 0 關(guān)注
  • 153 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號