MySQL 資料庫使用技巧

2021-08-29 17:28:51 字數 3388 閱讀 6105

mysql 資料庫使用技巧

1. mysql使用了isam/myisam/innodb/heap/berkley db(bdb)等幾種引擎(表型別),通常預設引擎是myisam。

isam/myisam強調快速讀取操作,每個表是乙個檔案,因此表大小受限於作業系統單個檔案的最大大小。

innodb儲存引擎支援事務、行鎖、外來鍵,表和索引存放於表空間,表空間是乙個或多個檔案或裸空間(raw disk)。

bdb   儲存引擎支援事務、頁鎖、外來鍵

heap允許只駐留在記憶體裡的臨時**,速度最快但不安全,用完之後必須刪除,通常用來做臨時表。

目前只有innodb和bdb引擎支援事務處理和外來鍵

從版本3.23.43b開始,innodb引擎支援外來鍵約束, 從版本4.0.2-alpha開始支援事務, 截止到版本4.1.12a仍然不支援檢視。

多種引擎可以協同工作,但事務中的非事務型表(isam/myisam/heap)無法回滾。

2. mysql匯出資料庫, 輸出重定向

mysqldump -u -p [--opt][-q | --quick] [tables] >

[-q | --quick] --不緩衝查詢,直接匯出至stdout

[--opt]   --優化匯出(同--quick --add-drop-table --add-locks --extended-insert --lock-tables)

[tables]  --多個表以空格分隔 ...

還可以同時匯出多個資料庫

mysqldump [options] --databases [options] db1 [db2 db3...]

mysqldump [options] --all-databases [options]

3. mysql匯入資料庫備份,輸入重定向

mysql -u -p  < 

4. 登入命令列處理器, -p 引數表示使用密碼

mysql [-h ] -u -p 

5. 檢視所有引擎、支援情況及預設引擎

show engines;

6. 修改預設引擎

修改mysql配置檔案my.ini(windows平台)或/etc/my.cnf(unix平台)相應鍵值

可能是以下兩種格式之一

default-storage-engine=myisam

default-table-type=myisam

7. 檢視所有支援的字符集

show character set;

8. 修改預設字符集,通常預設字符集為latin1(iso-8859-1)

修改mysql配置檔案my.ini(windows平台)或/etc/my.cnf(unix平台)相應鍵值

default-character-set=utf8

還可以在啟動服務時指定引數--language

mysqld --language=latin1 ...

9. 檢視當前主機所有資料庫

show databases;

mysqlshow -u -p --status    --os command window

10. 檢視資料庫執行狀態

show status;

11. 改變當前資料庫,mysql資料庫不須disconnect

use

12. 建立表時指定表型別(資料庫引擎)

注意:如果指定了不受支援的表型別,mysql將自動改用預設引擎(對此mysql已經考慮進行修改)。

create table (...) type=

13. 修改資料表的表型別

alter table type =

15. 預設的,mysql搜尋是大小寫不敏感的,如果需要乙個列總是被當作大小寫敏感的方式,必須宣告它為binary

create table (c varchar(10) [not null default ''] binary, ...)

16. 檢視當前資料庫所有表

show tables;

17. 檢視表的結構

[describe | desc] ;

18. 檢視索引

show index from ;

19. 檢視資料表資料引擎、字符集等詳細資訊

show table status [from ];      --指定資料庫所有表

show table status [from ] like ''  --表名支援萬用字元,不區分大小寫

show create table ;       --僅顯示建表語句、資料庫引擎、字符集

20. 顯示當前時間

select [now() | curdate() | curtime() | current_time];

21. if [not] exists的使用,僅支援[create | drop] [database | table]

create database [if not exists]

drop   database [if exists]    

create table    [if not exists] ...

drop   table    [if exists]    

22. 分析sql語句訪問過程

explain select ... ;

23. 恢復和整理磁碟空間以及資料碎片

optimize table ;        --在mysql command line client執行

myisamchk [-a | --analyze] [- | --...] --在os command window執行,檔案路徑及檔名可以使用萬用字元

[-a]   --通過分析鍵值的分布改進表聯結效能

[-s | -ss] --沉默模式。當錯誤發生時僅寫輸出,-ss表示非常沉默

[-r]   --恢復模式。可修復幾乎所有一切,除非唯一的鍵不是唯一

[-d]   --列印出關於表的一些資訊

[-w]   --如果表被鎖定,等待

[-e]   --非常徹底地檢查表。這僅在極端情況下是必要的

[-v]   --冗長模式。列印更多的資訊。通常與-d和-e一起使用。為了更冗長,使用-v多次(-vv, -vvv)

...   --其他選項略

常用選項示例:

myisamchk *.myi | myisamchk -a *.myi | myisamchk -d -v *.myi | myisamchk -s *.myi

optimize當前只能用於myisam和bdb表,myisamchk只能用於myisam表, isam表使用isamchk

myisamchk比optimize速度更快更可靠

對於innodb型別的表整理可以通過匯出表然後刪除原表重新匯入的方式,也可以通過將表型別改變為 myisam 然後再改為 innodb 的方式解決。

MySQL 資料庫使用技巧

1.mysql使用了isam myisam innodb heap berkley db bdb 等幾種引擎 表型別 通常預設引擎是myisam。isam myisam強調快速讀取操作,每個表是乙個檔案,因此表大小受限於作業系統單個檔案的最大大小。innodb儲存引擎支援事務 行鎖 外來鍵,表和索引...

MySQL資料庫優化技巧

在5.5之後預設的儲存引擎是innodb 可以單獨進行修改也可以在建立表時修改 alter table tab name engine innodb 十六 小心永久鏈結 永久鏈結 的目的是用來減少重新建立mysql鏈結的次數。當乙個鏈結被建立了,它會永遠處在連線的狀態,就算是資料庫操作已經結束了。而...

資料庫使用小技巧

包括安裝時提示有掛起的操作 收縮資料庫 壓縮資料庫 轉移資料庫給新使用者以已存在使用者許可權 檢查備份集 修復資料庫等。一 掛起操作 在安裝sql或sp補丁的時候系統提示之前有掛起的安裝操作,要求重啟,這裡往往重啟無用,解決辦法 到hkey local machine system currentc...