MySQL開發者都應該了解的12個技巧

2021-08-22 07:05:26 字數 2527 閱讀 2642

mysql是世界上實際最流行的資料庫管理系統,是遍布全球程式設計社群的推薦。它有乙個系列有趣的特性,在很多方面都很擅長。由於其巨大的人氣,在網上可以找到許多mysql的使用技巧。這裡有12個較好的技巧和竅門,所有mysql資料庫開發者都應該了解一下。

1、避免編輯轉儲檔案

mysqldump建立的轉儲檔案原本是無害的,但它很容易被嘗試去編輯。然而,人們應該知道在任何情況下的試圖修改這些檔案被證明是有危險的。直觀地看對這些檔案的改動會導致資料庫損壞,從而導致系統的退化。為了讓你的系統免受任何麻煩,你必須避免編輯mysql轉儲檔案。

2、myisam 塊大小

大多數開發者忘記了這一事實,檔案系統往往需要乙個大的myisam塊以保證高效執行。許多開發者不知道塊大小的設定。.myi檔案儲存在myisam_block_size的設定裡,這個設定項可用來修改大的塊尺寸。myisam塊大小的預設值是1k,這不是當前大多數系統的恰當設定。因此,開發者應該考慮指定乙個與之相適應的值。

3、開啟 delay_key_write

為避免系統崩潰時資料庫損壞delay_key_write預設是關閉的。有人可能會問,如果是這樣的話,為什麼要把它放在首位開啟呢?從防止資料庫每次寫myisam檔案時重新整理金鑰檔案方面看這是必要的。通過把它開啟,開發者可以節省很多時間。參考mysql官方手冊了解你的版本如何把它開啟。

4、joins(表連線)

建立索引和使用相同的列型別:join(表連線)操作可以在mysql中被優化。若應用中有許多join操作,可以通過建立相同的列型別上join來優化。建立索引是加速應用的另一種方法。查詢修改有助於你找回期望的查詢結果。

5、優化where從句

即使你只搜尋一行mysql也會查詢整個表,因此,建議你當只需要一條結果時將limit設定為1。通過這樣做,可以避免系統貫穿搜尋整個表,從而可以盡可能快找到與你需求相匹配的記錄。

6、在select查詢上使用explain關鍵字

7、使用查詢快取優化查詢

mysql的查詢快取是預設啟用的。這主要是因為快取有助於查詢的快速執行,快取可以在相同的查詢多次執行使用。你在關鍵字前加入當前日期、currdate等php**使查詢快取它從而啟用此功能。

8、使用堆疊跟蹤隔離bug

各種bug可以使用stack_trace隔離出來。乙個空指標足以毀掉一段特定的**,任何開發人員都知道它有這樣的能力。了解使用堆疊跟蹤的細節,從而在你的**裡避免bug。

9、設定sql_mode

列舉型別總是讓人感到非常的疑惑。由於字段可能擁有多個可能的值,這些可能的值包括你指定的和null,在編碼時將會出現很多問題,你將永遠都會得到乙個警告說**不正確。乙個簡單的解決辦法就是設定sql_mode。

// 用以下引數啟動mysqld

$–sql-mode=」modes」

// 或者在my.ini或 my.cnf 裡面設定如下選項

$sql-mode=」modes」

// 也可以在執行時直接設定,使用逗號分隔模式

$set [global|session] sql_mode=』modes』

// traditional 模式等價於下列模式:strict_trans_tables, strict_all_tables,

// no_zero_in_date, error_for_division_by_zero 和 no_auto_create_user

10、修改root密碼

修改root密碼對於某些特定設定是必不可少的,修改命令如下:

// 使用mysqladmin的password命令來修改(4.1格式)

$mysqladmin -u root password [新口令]

// 舊的修改口令的方法

$mysqladmin -u root -p [舊口令] 新口令 [敲回車後輸入新口令,然後回車]

// 使用mysql的命令

$mysql -u root -p

mysql> use mysql;

mysql> update user set password=新口令 where user = 『使用者名稱』;

mysql> flush privileges;

mysql> quit

11、用mysql dump 命令備份資料庫

開發者都知道資料庫備份的重要性,當系統出現重大故障時能夠起到救命的作用。

最簡單的備份資料庫的方法

$mysqldump –user [user name] –password=[password] [database name] > [dump file]

你也可以用簡寫"-u","-p"來分別代替"user"和"password",將多個資料庫匯入到乙個檔案只要在後面新增需要匯出資料庫的名稱:

mysqldump –user [user name] –password=[password] [first database name] [second database name] > [dump file]

12、調整config的配置

perl指令碼mysql tuner ( )是另乙個強大的優化資料庫效能的工具,它能夠幫助你對mysql配置來進行多處調整和修改。你可以訪問該項目的官網來進一步了解它。

每個 MySQL 開發者都應該了解的 12 個技巧

mysql是世界上實際最流行的資料庫管理系統,是遍布全球程式設計社群的首選。它有乙個系列有趣的特性,在很多方面都很擅長。由於其巨大的人氣,在網上可以找到許多mysql的使用技巧。這裡有12個最好的技巧和竅門,所有mysql資料庫開發者都應該了解一下。mysql mysqldump建立的轉儲檔案原本是...

人人都應該了解的 Android 程序管理機制

作為一名資深的手機使用者 我相信人人都是 是時候該解決這類疑問了。這一切都要從人與宇宙的關係。咳咳。手機程序的概念開始說起。在開發文件中是這麼說的 當乙個應用程式啟動時 僅僅只是 啟動時 並不一定有元件執行 就會產生乙個程序。在這個程序中同時會建立乙個主線程,使應用內的任務開始執行。android系...

開發者應該了解的API技術清單!

此外,難道我們的競爭對手還會自己來打造非核心的程式組成部分嗎?面對緊張的競爭局面,我們必須充分且合理地分配資源,讓自己盡可能地走在對手的前面。工具和解決方案 以下作者整理了乙個api服務清單,一方面希望能讓你的開發過程變得輕鬆,另外一方面希望能幫你節約時間,精力和努力。認證 授權 authentic...