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 引數,含義為上次處理的最...