MySQL監控常用語法

1 mysql連線數

一、取得mysql最大連線數

show status like ‘Max_used_connections’

二、取得mysql目前開啟的連線數

show status like ‘Threads_connected’

2 mysql 暫存

show status like ‘Innodb_buffer_pool_reads’

show status like ‘Innodb_buffer_pool_read_requests’

show status like ‘Innodb_buffer_pool_pages_total’

show status like ‘Innodb_buffer_pool_pages_free’

(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests)*100%

((Innodb_buffer_pool_pages_total-Innodb_buffer_pool_pages_free)/Innodb_buffer_pool_pages_total)*100%

3 鎖

show status like ‘Innodb_row_lock_waits’

show status like ‘Innodb_row_lock_time_avg’

show open TABLES where in_use>0;

4 sql語法

一、慢查詢mysql 語法開關是否打開

show variables like ‘slow_query_log’;

二、慢查詢mysql語法打開

set global slow_query_log=1

三、設定慢sql的時間(秒)

set long_query_time=1

三、慢sql路徑

show variables like ‘slow_query_log_file’;

四、透過慢sql分析工具格式化記錄

mysqldumpslow -s at -t 10 /export/data/mysql/log/slow.log

四.1、取出使用最多的10條慢sql

./mysqldumpslow -s c -t 10 /export/data/mysql/log/slow.log

四.2、取出查詢時間最慢的3條sql

./mysqldumpslow -s t -t 3 /export/data/mysql/log/slow.log

幾個會導致sql變慢的原因

1 子查詢

SELECT FROM t1 WHERE id (SELECT id FROM t2 WHERE name=’hechunyang’);

改用 join ,但update/delete沒作用

2 避免用函數

SELECT FROM t WHERE YEAR(d) >= 2016;

改用 SELECT FROM t WHERE d >= ‘2016-01-01’;

3 用in 取代 or

SELECT FROM t WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30;

改用  SELECT FROM t WHERE LOC_IN IN (10,20,30);

4 雙%號無法用到索引

SELECT FROM t WHERE name LIKE ‘%de%’;

改為 SELECT FROM t WHERE name LIKE ‘de%’;

5 分組統計可以禁止排序

SELECT goods_id,count() FROM t GROUP BY goods_id;

改為  SELECT goods_id,count () FROM t GROUP BY goods_id ORDER BY NULL;

6不要用無意義的order by

SELECT count(1) FROM user u LEFT JOIN user_info i ON u.id = i.user_id WHERE 1 = 1 ORDER BY u.create_time DESC;

改為

SELECT count (1) FROM user u LEFT JOIN user_info i ON u.id = i.user_id;

 

.Net 7 開發增進效能的小撇步

預計在2022年11月發布的.net7目前進入RC2的版本。來談談.net7 做了那些效能上的改進~

LINQ部份

1針對max/min最佳化

2針對Average/sum

3新增order/orderDescending 取代orderby/orderbydescending

4 System.IO的改善 WriteAllText改ReadAllText

5 針對Jsonserializer NoCachedOptions提昇

6Guid的 GuidEquals提昇

7ParseBigInt提昇

8ParseBool

9 Stopwatch中的getprocessbyname與getcurrentprocessname

10 在stopwatch加上getelapsedtime取得時間戳

.net Multi-platform APP UI(MAUI)教學準備中

2022年11月微軟準備在.net 新版本中發表 Multi-platform APP UI(MAUI)新的跨平台開發架構,透過c#以及XAML就可以開發出同時在windows、android以及ios與mac os上的程式(對了!目前還沒有支援到linux)!

簡單的說它算是Xamarin.Forms後續的版本,近期開始著手撰寫以及錄製MAUI的教學以及學習文件。

.net MAUI 新增程式
預設.net MAUI 範例教學程式

教學影片錄製相關-麥克風

九成新手都用錯! 小蜜蜂的領夾型麥克風怎麼夾? 怎麼黏? 別麥克風教學

領夾MIC麥克風 不能不知道的祕密

無線領夾式麥克風怎麼接才能讓線上和實體的學生都聽得到完美的聲音

Lavalier GO / Skier / Sennheiser 領夾式麥克風 mini mic 效果實測

ZOOM LiveTrak L-8 L8 廣播 混音機 混音器高階技巧應用

線上視訊 課程 簡易雙畫面小撇步

Countryman Headset Mic Placement

How to choose the right headset mic for any situation

Countryman E6 Setup video

Learn how to mount and adjust 4066/4088 Headset Microphones properly

DPA d:fine™ Headset Mic – tips & tricks

Redis for Windows 5.0.14.1

最近因為開發上的需求使用Redis,不過Redis並不支援Windows。官網上的建議做法也是建議打開WSL(Windows Subsystem for Linux),裝上ubuntu後再安裝(詳見: Install Redis on Windows )。windows上面網路上建議安裝的是Microsoft 已封存的3.0版本 ( https://github.com/microsoftarchive/redis ) 或是建議使用相容redis 6的 memurai (https://www.memurai.com/ ) 。但考量.net後續可以在Linux上跑的原因~還是以較悠久的redis為主,於是在網路上找到一個比較貼近的版本,是由網路上的大神Tomasz Poradowski 在github上分享的版本 https://github.com/tporadowski/redis/releases 。2022年2月發佈最新的版本是5.0.14.1。

Dveloper GUI for Redis
Another Redis Desktop Manager
Redis Assistant

延伸資料:

redis的持久化

Redis数据库学习教程

redis的持久化方式RDB和AOF的区别

2021 iThome 鐵人賽Redis還在學

餐飲業POS走向智慧餐飲的幾個方向

隨著疫情的關係,消費者越來越習慣透過網路去滿足自己在飲食上的需求。而且著重在效率以及體驗上~餐飲業相關的系統以及POS都面臨到不再只能把自己局限在收銀上面而已,而是能集合線上點餐、外送/外賣平台整合、線上預購、團購等功能於一體為商業需求的綜合管理系統。

要達到能實現智慧餐飲的要點應該有:

一、自助點餐-無論是使用kiosk或是手機點餐系統去做點餐以及付費,重要是不需要排隊,節省收銀員人力以及時間,也提升翻桌率與整體服務時間。

二、透過LINE或會員平台去留住客戶-如果使用外賣外送平台的話,使用者都會留在平台,店家無法直接與客戶聯繫,可以透過LINE或自有會員平台留住自己的使用者數據。

三、大數據分析-透過累積的用戶資料,去描繪與瞭解自己的客戶畫象,可以有效的做精準行銷。

四、會員管理-建立積分/積點模式,留住老客戶。

五、系統流程的自動化-例如客戶下單後,訂單自動同步的後端廚房,減少溝通,降低出錯

六、流量為王-透過FB、LINE做為入口,從大魚池拉進自己的小魚池中,進而提升線上銷售量。

系統商應該具備功能:

一、行動化點餐

二、預約排隊、自動叫號

三、線上訂位

四、折扣、積分/積點、儱惠券等方式提高忠誠度與二次消費

五、外賣/外送-結合uber eats/Foodpanda等功能

對 Azure DevOps 導入有興趣值得一聽的~Azure DevOps導入與數位轉型祕辛

這是 ‧NET Walker 大內行者 董大偉老師舉辦的一場很棒的線上課程,除了二位老師外還有 Will 保哥的技術交流中心 的保哥。在FB還可以看到 安德魯的部落格 Andrew Wu 的留言,大約2個小時多的直播中。從一開始為何導入Azure DevOps 是為了Sprint週期變短以及Dev+Ops等指標。討論交付時間延長就等於安全交付?實際開發狀況是專案時間就夠緊迫了,我要有辦法去做TDD?CodeReview?重構?技術債改善這些事嗎? 接著探討頻繁交付的適當性等議題。 大家可以聽一聽實務界技術大老討論,不過說真的沒有對錯,能夠讓自己公司團隊做出質量好產出的就是適合自己的方法。