mysql函式 優化 Mysql函式求優化解決思路

2021-10-18 11:16:00 字數 1801 閱讀 7562

mysql函式求優化

小弟剛開始接觸mysql資料庫,需要基於mysql資料庫做報表開發,寫的乙個函式查詢時候效率特別低下。

備註:傳進來比較的引數資料量 5w條左右。請高手指教優化方法。

另外,一般mysql除錯的技巧及工具都用什麼

函式如下:

sql code

------解決方案--------------------

索引建立沒有,將

if return_type = 'pro' then

set return_value = temp_prov;

elseif return_type = 'city' then

set return_value = temp_city;

elseif return_type = 'busi' then

set return_value = temp_busi;

elseif return_type = 'ipfromto' then

set return_value = concat(temp_start,' to ',temp_end);

else

set return_value='other';

end if;

end if;

set return_value=if(return_type = 'city',temp_city,...)

修改為if or case when

------解決方案--------------------

應該是這句話慢

select count(1) into iftrue

and type_id = code_type

and start_ip_no <= ip_no

and end_ip_no >= ip_no;

加索引------解決方案--------------------

索引建立沒有

type_id start_ip_no end_ip_no 建立復合索引

------解決方案--------------------

把字段type_id start_ip_no end_ip_no建立復合索引。

------解決方案--------------------

select count(1) into iftrue

and type_id = code_type

and start_ip_no <= ip_no

and end_ip_no >= ip_no;

if iftrue = 0 then

set return_value = 'unkown ip';->

if not exists(select 1

and type_id = code_type

and start_ip_no <= ip_no

and end_ip_no >= ip_no) then

set return_value = 'unkown ip';

試試------解決方案--------------------

貼建表及插入記錄的sql,及要求結果出來看看

看看能否用sql語句直接解決

------解決方案--------------------

支付寶 賞一聽可樂吧~

mysql日期函 MySQL 日期函式

mysql 日期函式 1,mysql dayofweek 和 weekday 獲取星期 在 mysql 中,我們可以用 dayofweek 和 weekday 函式獲取指定日期的星期.區別在於 dayofweek 獲取的星期索引是以 1 開始,而 weekday 獲取的星期索引是以 0 開始.day...

mysql時間函式中文 Mysql的時間函式

1.本週內的第幾天,從週日開始 mysql select dayofweek 2015 05 25 dayofweek 2015 05 25 2 1 row in set 0.00 sec 2.本月內的第幾天 mysql select dayofmonth 2015 05 25 dayofmonth...

mysql開窗函式有哪些 mysql開窗函式

開窗函式 它可以理解為記錄集合,開窗函式也就是在滿足某種條件的記錄集合上執行的特殊函式。對於每條記錄都要在此視窗內執行函式,有的函式隨著記錄不同,視窗大小都是固定的,這種屬於靜態視窗 有的函式則相反,不同的記錄對應著不同的視窗,這種動態變化的視窗叫滑動視窗。開窗函式的本質還是聚合運算,只不過它更具靈...