mysql影片教學欄位介紹MySQL的最佳化方法
推薦(免費):mysql影片教學
記錄學習筆記,持續更新。
最佳化方向
SQL最佳化
- #sql最佳化分析 ##索引最佳化
sql最佳化分析
##索引最佳化- 優化資料庫物件
- 優化表的資料類型
#反範式
使用中間表- 優化mysql server
log機制及最佳化
調整mysql並發參數- 應用程式最佳化
- 資料庫連線池
負載平衡建立叢集
主主同步、主從複製Mysql最佳化問題分析定位
分析SQL執行頻率show status
例如:分析读为主,还是写为主
定位執行效率低的SQl慢查询日志定位-log-slow-queries = xxx(指定文件名)SHOW PROCESSLIST查看当前正在进行的线程,包括线程状态、是否锁表
分析SQL執行計畫explain "your sql"desc "your sql"- 部分参数分析
select_type: SIMPLE 简单表,不使用表连接或子查询PRIMARY 主查询,即外层的查询UNION SUBQUER 子查询的第一个select
type: ALL 全表扫描
index 索引全扫描
range 索引范围扫描
ref 使用非唯一索引或唯一索引的前缀扫描
eq_ref 类似ref,使用的索引是唯一索引const/system 单表中最多有一个匹配行NULL 不用访问表或者索引,直接得到结果
show profile分析SQLselect @@have_profiling 是否支持
select @@profiling 是否开启
执行 "your sql"show profiles
show profile block io for QUERY 17
索引最佳化
索引的儲存分類B-TREE索引:常见,大部分都支持HASH索引:只有memory引擎支持R-TREE索引:空间索引是MyISAM的一个特殊索引类型,主要用于地理空间数据类型
full-text索引:全文索引,MyISAM的一个特殊索引类型,innodb从5.6开始支持
索引的建立與刪除添加索引ALTER Table `table_name` ADD PRIMARY KEY(`column`)ALTER Table `table_name` ADD UNIQUE(`column`)ALTER Table `table_name` ADD INDEX(`column`)ALTER Table `table_name` ADD FULLTEXT(`column`)
删除ALTER Table `table_name` drop index index_name
Mysql中能使用索引的情況匹配全值
匹配值范围查询
匹配最左前缀
仅仅对索引进行查询(覆盖查询)
匹配列前缀 (添加前缀索引)
部分精确+部分范围
不能使用索引的場景以%开关的like查询
数据类型出现隐式转换
复合索引查询条件不包含最左部分
使用索引仍比全表扫描慢
用or分割开的条件
mysql語句最佳化
#定期最佳化表格optimize table table_name 合并表空间碎片,对MyISAM、BDB、INNODB有效
如果提示不支持,可以用 mysql --skip-new 或者 mysql --safe-mode 来重启,以便让其他引擎支持
常用最佳化尽量避免全表扫描,对where及orderby的列建立索引
尽量避免where使用 != 或 尽量避免where子句用 or 连接条件
乱用%导致全表扫描
尽量避免where子句对字段进行表达式操作
尽量避免where子句对字段进行函数操作
覆盖查询,返回需要的字段
优化嵌套查询,关联查询优于子查询
组合索引或复合索引,最左索引原则
用exist代替in当索引列有大量重复数据时,SQL查询可能不会去利用索引
優化資料庫物件
#優化表格資料類型PROCEDURE ANALYSE (16,256) 排除多于16个,大于256字节的ENUM建议"your sql" PROCEDURE ANALYSE ()
表格分割垂直拆分
针对某些列常用、不常用
水平拆分
表很大
表中的数据有独立性,能简单分类
需要在表存放多种介质
反範式增加冗余列、增加派生列、重新组表和分割表
使用中間表格数据查询量大
数据统计、分析场景
Mysql引擎比較
mysql有什麼引擎?
關於表引擎的指令show engines; 查看myql所支持的存储引擎
show variables like '%storage_engine'; 查看mysql默认的存储引擎
show create table table_name 查看具体表使用的存储引擎
關於innodb1. 提供事务、回滚、系统奔溃修复能力、多版本并发控制事务2. 支持自增列3. 支持外键4. 支持事务以及事务相关联功能5. 支持mvcc的行级锁
#關於MyISAM1. 不支持事务、不支持行级锁,只支持并发插入的表锁,主要用于高负载的select2. 支持三种不同的存储结构:静态、动态、压缩
調整參數最佳化mysql後台服務
MyISAM記憶體最佳化#修改相应服务器位置的配置文件 my.cnf
key_buffer_size
决定myisam索引块缓存区的大小,直接影响表的存取效率,建议1/4可用内存
read_buffer 读缓存
write_buffer 写缓存
#InnoDB記憶體最佳化innodb_buffer_pool_size 存储引擎表数据和索引数据的最大缓存区大小
innodb_old_blocks_pct LRU算法 决定old sublist的比例
innodb_old_blocks_time LRU算法 数据转移间隔时间
mysql並發參數max_connections 最大连接数,默认151back_log 短时间内处理大量连接,可适当增大
table_open_cache 控制所有SQL执行线程可打开表缓存的数量,受其他参数制约
thread_cache_size 控制缓存客户服务线程数量,加快数据库连接速度,根据threads_created/connections来衡量是否合适
innodb_lock_wait_timeout 控制事务等待行锁时间,默认50ms
- Mysql應用程式最佳化介紹
- #為什麼要做應用最佳化
mysql服務及自身效能瓶頸
保證大型系統穩定可靠運作- #應用程式最佳化方法
使用連線池#減少對mysql的真實連線
a.避免相同資料重複執行(查詢快取)
b. 使用mysql快取(sql快取)
#負載平衡 a. LVS 分散式 b. 讀寫分離(主主複製、主從複製保證資料一致性)
##########資料庫連接池######php-cp 擴展,只記錄一下,這種方案可能已過時###主從備份及讀寫分離
主主備份
##負載平衡
#相關免費學習推薦:php程式設計(影片)
#
以上是筆記之 MySQL 優化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

構建MySQL數據庫的步驟包括:1.創建數據庫和表,2.插入數據,3.進行查詢。首先,使用CREATEDATABASE和CREATETABLE語句創建數據庫和表,然後用INSERTINTO語句插入數據,最後用SELECT語句查詢數據。

MySQL適合初學者,因為它易用且功能強大。 1.MySQL是關係型數據庫,使用SQL進行CRUD操作。 2.安裝簡單,需配置root用戶密碼。 3.使用INSERT、UPDATE、DELETE、SELECT進行數據操作。 4.複雜查詢可使用ORDERBY、WHERE和JOIN。 5.調試需檢查語法,使用EXPLAIN分析查詢。 6.優化建議包括使用索引、選擇合適數據類型和良好編程習慣。

MySQL適合初學者,因為:1)易於安裝和配置,2)有豐富的學習資源,3)SQL語法直觀,4)工具支持強大。儘管如此,初學者需克服數據庫設計、查詢優化、安全管理和數據備份等挑戰。

是的,sqlisaprogramminglanguges pecialized fordatamanage.1)它具有焦點,focusingonwhattoachieveratherthanhow.2)sqlisessential forquerying forquerying,插入,更新,更新,和detletingdatainrelationalDatabases.3)

ACID屬性包括原子性、一致性、隔離性和持久性,是數據庫設計的基石。 1.原子性確保事務要么完全成功,要么完全失敗。 2.一致性保證數據庫在事務前後保持一致狀態。 3.隔離性確保事務之間互不干擾。 4.持久性確保事務提交後數據永久保存。

MySQL既是數據庫管理系統(DBMS),也與編程語言緊密相關。 1)作為DBMS,MySQL用於存儲、組織和檢索數據,優化索引可提高查詢性能。 2)通過SQL與編程語言結合,嵌入在如Python中,使用ORM工具如SQLAlchemy可簡化操作。 3)性能優化包括索引、查詢、緩存、分庫分錶和事務管理。

MySQL使用SQL命令管理數據。 1.基本命令包括SELECT、INSERT、UPDATE和DELETE。 2.高級用法涉及JOIN、子查詢和聚合函數。 3.常見錯誤有語法、邏輯和性能問題。 4.優化技巧包括使用索引、避免SELECT*和使用LIMIT。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能