|
從文件載入表數(shù)據(jù):LOAD DATA INFILE LOAD DATA INFILE語句用于高速地從一個文本文件中讀取行,并裝入一個表中。文件名稱必須為一個文字字符串。 要使用LOAD DATA INFILE語句,用戶必須具有FILE權(quán)限。 存儲引擎(表的格式) 創(chuàng)建表時即可指定表的格式:create table books type = [myisam,isam,memeory,merge,bdb,innodb] 在大多數(shù)Web應(yīng)用程序中我們使用MyISAM或InnoDB表格,或者二者的結(jié)合。 MyISAM - 這是默認(rèn)的類型,基本傳統(tǒng)的ISAM類型,它是存儲記錄和文件的標(biāo)準(zhǔn)方法。MyISAM具有檢查和修復(fù)表格的大多數(shù)工具,而且可以被壓縮,支持全文搜索。但不是事務(wù)安全的,而且不支持外鍵。 InnoDB - 是事務(wù)安全的。支持外鍵,速度很快。 對于一個大量使用SELECT或INSERT語句的表格,應(yīng)該使用MyISAM類型;如果需要全文搜索功能,也應(yīng)該使用MyISAM。 當(dāng)事務(wù)安全非常重要,應(yīng)該使用InnoDB 對于臨時表格或要是實現(xiàn)視圖,可以使用MEMORY表格 可以使用ALTER TABLE語句更改表格類型。 事務(wù) 事務(wù)是確保數(shù)據(jù)庫一致的機制,尤其是在發(fā)生錯誤或服務(wù)器崩潰情況下確保數(shù)據(jù)庫一致的機制。 事務(wù)是一個或一系列的查詢,這些查詢可以保證能夠在數(shù)據(jù)庫中作為一個整體全部執(zhí)行或者全部不執(zhí)行。這樣,數(shù)據(jù)庫才能在無論事務(wù)是否完成的情況下保持一致狀態(tài)。 比如:從銀行的一個賬戶轉(zhuǎn)賬到另一個賬戶,就必須在刪除這個賬戶的同時增加另一個賬戶的金額;如果在取出一個賬戶之后,忽然停電,導(dǎo)致沒有存儲到另一個賬戶,資金就會丟失,而事務(wù)安全就保證不會出現(xiàn)這種情況。 一個事務(wù)實永久地定入數(shù)據(jù)庫中稱作該事務(wù)被提交了。一個沒有寫入到數(shù)據(jù)庫中的事務(wù)稱作事務(wù)被回滾了。 通過InnoDB使用事務(wù) 默認(rèn)情況下MySQL是自動提交的,如果要使用事務(wù),我們可能不希望使用這種行為。 關(guān)閉當(dāng)前會話的自動提交: set autocommit = 0; 如果自動提交被打開了,在使用事務(wù)前必須使用下面的命令: start transaction; 在完成了組成事務(wù)的語句輸入后,可以使用下面的語句將其提交到數(shù)據(jù)庫: commit; 如果改變主意,可以使用下面的語句回到數(shù)據(jù)庫以前的狀態(tài): rollback; 外鍵 比如我們要在order_items中插入一行,必須包括一個有效的orderid,在InnoDB中使用外鍵,可以讓數(shù)據(jù)庫完成檢查操作(與orders表中的orderid進(jìn)行比對)。而在MyISAM中就只能自己核對了。 可以在創(chuàng)建表時在列薦使用 references orders(orderid) 來實現(xiàn)外鍵,亦可在創(chuàng)建后進(jìn)行修改: ALTER TABLE order_items ADD FOREIGN KEY ( orderid ) REFERENCES orders( orderid ); 使用ALTER TABLE的 add foreign key ... references 來修改
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|