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

2021-09-23 16:41:51 字數 2349 閱讀 3513

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

mysql

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

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

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

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

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

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

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

列舉型別總是讓人感到非常的疑惑。由於字段可能擁有多個可能的值,這些可能的值包括你指定的和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

修改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

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

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

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

原文發布時間為:2013-08-21

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

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

每個工程師都應該了解的 聊聊冪等

什麼是冪等 idempotency 簡單來說,乙個操作如果具有任意多次執行所產生的影響均與一次執行的影響相同,我們就稱之為冪等。這樣說來,似乎很容易理解。但要知道,這樣的定義,其實是乙個語義範疇對行為結果的定義。如何用語法和規則去確保行為能達到這個結果,往往需要很謹慎的設計和實現。實際系統中,冪等是...

每個工程師都應該了解的 聊聊冪等

至 什麼是冪等 idempotency 簡單來說,乙個操作如果具有任意多次執行所產生的影響均與一次執行的影響相同,我們就稱之為冪等。這樣說來,似乎很容易理解。但要知道,這樣的定義,其實是乙個語義範疇對行為結果的定義。如何用語法和規則去確保行為能達到這個結果,往往需要很謹慎的設計和實現。實際系統中,冪...