索引和備份
漢語字典中的漢字按頁存放,一般都有漢語拼音目錄(索引)、偏旁部首目錄等
我們可以根據拼音或偏旁部首,快速查詢某個字詞
索引是一種有效組合資料的方式,為快速查詢到指定記錄
作用
大大提高資料庫的檢索速度
改善資料庫效能
MySQL索引按儲存型別分類
B-樹索引:InnoDB、MyISAM均支援
雜湊索引
常用的索引型別:
普通索引:
基本索引的型別
允許在定義的索引列中插入重複的值和空值
唯一索引:
索引資料不重複
允許有空值
主鍵索引:
主鍵列中每個值是飛空的,唯一的
一個主鍵將自動建立主鍵索引
複合索引:
將多個列組合作為索引
全文索引:
支出值的全文查詢
允許重複值和空值
空間索引:
對空間資料型別的列建立的索引
建立索引:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
ON table_name (column_name[length]…);唯一索引、全文索引或空間索引,可選
刪除索引:
DROP INDEX index_name ON table_name;
刪除表時該表的索引同時會被刪除
例子:
在student表的studentName列建立普通索引
USE myschool;
CREATE INDEX `index_student_studentName`
ON `student`(`studentName`);
檢視索引:
SHOW INDEX FROM table_name;
例子:
USE myschool;
SHOW INDEX FROM student;
備份:
mysqldump 可選引數 –u 使用者名稱 –h host –p密碼
資料庫名 表明>建立的檔名
例子:
mysqldump –u root –p myschool student > d:\backup\myschool_20160808.sql
備份常用引數:
-add-drop-table
在每個CREATE TABLE語句前新增DROP TABLE語句,預設是開啟的,可以用-skip-add-drop-table來取消
--add-locks
該選項會在INSERT 語句中捆綁一個LOCK TABLE 和UNLOCK TABLE 語句
好處:防止記錄被再次匯入時,其他使用者對錶進行的操作
-t或-no-create-info
只匯出資料,而不新增CREATE TABLE語句
-c或--complete-insert
在每個INSERT語句的列上加上列名,在資料匯入另一個數據庫時有用
-d或--no-data
不寫表的任何行資訊,只轉儲表的結構
使用mysql命令恢復資料庫
mysql –u 使用者名稱 –p 資料庫名 < 備份檔名
匯出資料:
SELECT * FROM tablename
[WHERE contion]
INTO OUTFILE 'filename' [OPTION]
例子:
將成績表中“Logic Java”課程的成績資訊匯出到文字檔案
SELECT * FROM result
WHERE subjectNo =
(SELECT subjectNo FROM subject
WHERE subjectName = 'Logic Java')
INTO OUTFILE d:/backup/result_Java.txt
匯入資料:
LOAD DATA INFILE filename INTO TABLE tablename [OPTION]
例子:
將資料從文字檔案匯入到myschoolDB的result表
LOAD DATA INFILE 'd:/back/result_Java.txt' INTO TABLE result;