《MySQL必知必會》筆記事務、安全及效能等
二十六 管理事務處理
1.並非所有引擎都支援事務處理,如MyIASM和InnoDB,關於事務處理的幾個術語:
事務(Transaction)指一組sql語句;
回退(rollback)指撤銷指定SQL語句的過程;
提交(commit)指將為儲存的SQL語句結果寫入資料庫表;
保留點(savepoint)指事務處理中設定的臨時佔位符(placeholder),可以對它釋出回退。
2.管理事務處理的關鍵在於將SQL語句組分解為邏輯塊,並明確規定資料何時應該回退,何時不應該回退。
3.MySQL使用如下標誌事務的開始:
START TRANSACTION
ROLLBACK用來回退MySQL語句。
如:
SELECT * FROM ordertotals;//顯示該表不為空 START TRANSACTION;//開始事務 DELETE FROM ordertotals;//刪除全部資料 ROLLBACK;//回退 SELECT * FROM ordertotals;//顯示該表不空
事務處理用來管理INSERT/UPDATE/DELETE語句,不能回退CREATE/DROP操作,當然還有SELECT;
4.使用COMMIT,一般的MySQL語句都是直接針對資料庫表執行和編寫的,即所謂的隱含提交(implicit commit),
提交操作室自動的。在事務處理中,提交不會隱含的進行。
如:
START TRANSACTION; DELETE FROM orderitems WHERE order=20010; DELETE FROM orders WHERE order_num=20010; commit;
注意“隱含事務關閉”。
5.使用保留點。
如:SAVEPOINT delete1;
ROLLBACK TO delete1;
保留點越多越好,在事務處理完成後保留點可以自動釋放。
6.更改預設的提交行為。為了使MySQL不自動提交更改,
可以:
SET autocommit=0;//直到被重新設定為真為止。
注意 autocommit 標誌是針對每個連線而不是伺服器的。
三十 改善效能
1.遵循MySQL的硬體建議;
2.使用過程中可能需要調優,檢視當前設定,可以使用SHOW VARIABLES;SHOW STATUS等;
3.MySQL是一個對使用者多執行緒的DBMS,如果多工中的某一個執行緩慢,會影響所有請求的執行,
SHOW PROCESSLIST;
可以顯示所有活動程式,進而執行KILL操作;
4.總是有不止一種方法編寫同一條SELECT語句;
5.使用EXPLAIN語句讓MySQL解釋如何執行一條SQL語句;
6.一般來說,儲存過程要比執行獨立的各條SQL語句要快;
7.應該總是使用正確的資料型別;絕不要檢索必需求還多的資料。換言之,不要使用select *(除非你真正需要某個列);
8.某些操作支援可選的DELAYED關鍵字,如果使用它,將把控制立即返回給呼叫程式,並且一旦有可能就實際執行該操作,即延遲插入;
9.在匯入資料時,應該關閉自動提交。也可以刪除索引,在匯入完成後再重建;
10.必須索引資料庫表以改善資料檢索的效能。如果一個簡單的WHERE子句返回結果的時間過長,則可以斷定其中幾個列是需要索引的物件;
11.SELECT不應該使用過多的OR條件,使用UNION連線子句代替,會看到極大的效能改善;
12.索引改善資料檢索的效能,但損害資料插入、刪除和更新的效能。如果某些表收集資料但是不經常被檢索,在這之前不應該索引它們;
13.LIKE很慢,最好使用FULLTEXT代替;
14.最重要的規則是,每條規則在某些條件下都會被打破。
本文轉自邴越部落格園部落格,原文連結:http://www.cnblogs.com/binyue/p/3721246.html,如需轉載請自行聯絡原作者
相關文章
- mysql必知必會筆記MySql筆記
- 《Mysql必知必會》讀書筆記MySql筆記
- MySQL必知必會筆記——查詢的基礎知識MySql筆記
- SQL必知必會筆記(上)SQL筆記
- SQL必知必會筆記(下)SQL筆記
- MySQL 必知必會MySql
- 【必知必會的MySQL知識】①初探MySQLMySql
- 【必知必會的MySQL知識】②使用MySQLMySql
- Mysql必知必會練習MySql
- 01-mysql必知必會MySql
- MySQL必知必會 學習筆記 第十四章 使用子查詢MySql筆記
- MYSQL中的鎖必知必會MySql
- 【必知必會的MySQL知識】④DCL語言MySql
- 【必知必會的MySQL知識】⑤DQL語言MySql
- 【必知必會的MySQL知識】③DML語言MySql
- 《MySQL必知必會》萬用字元 ( like , % , _ ,)MySql字元
- MySQL必知必會》正規表示式MySql
- MySQL必知必會(1-12章)MySql
- MySQL必知必會詳細總結MySql
- Kafka叢集搭建及必知必會Kafka
- 【必知必會的MySQL知識】mysql5.7安裝教程MySql
- 《MySQL 必知必會》C25-C28MySql
- Linux必會必知Linux
- git必會必知Git
- Redis 必知必會Redis
- ThreadLocal必知必會thread
- Activity 必知必會
- JSON 必知必會JSON
- HashMap必知必會HashMap
- 12.MySQL必知必會之分組資料MySql
- 《正規表示式必知必會》學習筆記以及示例文件筆記
- notion database 必知必會Database
- Linux shell必知必會Linux
- Linux 程式必知必會Linux
- [高效能MYSQL學習筆記]事務MySql筆記
- 必知必會Java命令-jpsJava
- Redis 必知必會之 APIRedisAPI
- HTTP 必知必會的那些HTTP
- 常用技術必知必會