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...