
*****
## 影響服務器性能的幾個方面
1.服務器硬件
2.服務器的操作系統
3.數據庫存儲引擎的選擇
4.數據庫參數配置
5.數據庫結構設計和SQL語句
### SQL性能下降原因
* 查詢語句寫的不好
* 索引失效
* 關聯查詢太多join
* 服務器調優及各個參數設置
### SQL加載順序
手寫SQL的順序
```
select distinct
<select _list>
from
<left_table>
join <right_table> on <join_codition>
where
<where_condition>
group by
<group_by_list>
having
<having_condition>
order by
<order_by_condition>
limit <limit number>
```
機讀的SQL順序

#### MySQL常見瓶頸
* CPU:CPU在飽和的時候一般發生在數據裝入內存或從磁盤讀取數據的時候
* IO:磁盤I/O瓶頸發生在裝入數據遠大于內存容量的時候
* 服務器硬件的性能瓶頸
- 1-數據庫-基本使用
- 1-1-數據存儲
- 1-2-數據庫
- 1-3-MySQL安裝和配置
- 1-4-SQL
- 1-5-數據完整性
- 1-6-命令行操作數據庫
- 2-MySQL查詢
- 2-1-MySQL查詢
- 2-2-條件
- 2-3-聚合函數
- 2-4-分組
- 2-5-排序
- 2-6-分頁
- 2-7-連接查詢
- 2-8-子查詢
- 2-9-自關聯
- 3-MySQL外鍵
- 4-MySQL與Python交互
- 4-1-數據準備
- 4-2-數據表的拆分
- 4-3-Python操作MySQL
- 5-MySQL高級
- 5-1-視圖
- 5-2-事務
- 5-3-索引
- 5-4-賬戶管理(了解)
- 6-數據庫存儲引擎
- 6-1-MyISAM存儲引擎
- 6-2-Innodb存儲引擎
- 6-3-CSV存儲引擎
- 6-4-Memory存儲引
- 7-MySQL基準測試
- 8-explain分析SQL語句
- 8-1-影響服務器性能的幾個方面
- 8-2-explain分析SQL
- 9-索引優化案例
- 10-索引優化
- 11-排序優化
- 12-慢查詢日志
- 13-Show Profile進行SQL分析
- 14-數據庫鎖
- 15-主從復制
- 16-MySQL分區表
- 17-MySQL操作規范