優化查詢資料慢的方式

2022-01-31 17:06:54 字數 587 閱讀 9244

mysql資料上限 5000萬 超過效能急劇下降

提公升效率;

字段長度

字段型別

sql優化

索引 減少ddl語句(表的修改等)

分庫分表:處理資料過大查詢慢

垂直拆分(userid放使用者庫 orderid放訂單庫) 存在表效能瓶頸 不易擴充套件 事物處理複雜(不同庫 事物)

水平拆分(orderid % 3 = 具體庫的庫 ) 分片事物

分庫分表: 都有事物問題 跨庫跨表join問題 多資料來源管理麻煩

分布式事物 :一致性hash演算法

跨庫join是共同難題 效能問題 盡量少使用多表join

解決方案:

mycat proxy可以幫忙命中db (ha高可用) (阿里的mycat-cobar、)

driver (當當網的sharding-jdbc:先分片規則配置-> jdbc規範重寫 -> sql解析 sql路由(id資訊%10) sql改寫 執行(select * from db0.user) ->歸併)

分片規則:

分片的列:userid

配置分片資料庫表演算法:ds_$->

qps

優化 慢查詢

查詢超過指定時間的語句叫慢查詢 檢視慢查詢的指定時間 show variables like long show status like connections 查詢當前mysql資料庫是否開啟了慢查詢日誌功能 show variables like slow 5.5版本配置 1 配置慢查詢日誌存放...

慢查詢優化

建索引的幾大原則 1.最左字首匹配原則,非常重要的原則,mysql會一直向右匹配直到遇到範圍查詢 between like 就停止匹配,比如a 1 and b 2 and c 3 and d 4 如果建立 a,b,c,d 順序的索引,d是用不到索引的,如果建立 a,b,d,c 的索引則都可以用到,a...

SQL慢查詢優化

3月19日,3月20日的18 00 20 00之間,db伺服器的cpu load飆公升 dba提出問題原因是sql where rest id and state and id and valid 掃瞄行數太多,執行時間過長 在b端心跳連線時,會傳 queue marker 引數,含義為上次處理的最...