以下很多內容來自於網路
建立使用者
// host 使用者位址,%表示可以遠端,localhost表示本地,也可以指定具體ip
create user 『username』@『host』 identified by 『password』;
然後使用grant語句賦予該使用者許可權
grant all privileges on db.table to 『username』@『host』;
還可以直接使用grant建立語句加賦予許可權
// with grant option 是將『賦予使用者許可權』的許可權給該使用者,一般不加,加了的話只可以將自己有許可權的表grant。
// 只有root有建立使用者的許可權
grant all privileges on db.table to 『username』@『host』 identified by 『password』 [with grant option];
檢視使用者許可權
show grants for 『username』@『host』;
備份主要是使用mysql提供的mysqldump工具,在工作中,我們一般建立乙個定時任務,每天備份我們的資料庫。
自動備份指令碼
#! /bin/bash
db_user=「user」
db_pwd=「pwd」
db_name=「dbname」
bk_dir="/home/mysql/backup"
bin_dir="/usr/local/mysql/bin"
b in
dir/
mysq
ldum
p−−o
pt−u
bin_dir/mysqldump --opt -u
bindi
r/my
sqld
ump−
−opt
−udb_user -p$db_pwd $db_name t_user > bkd
ir
/bk_dir/
bkdir
/_$(date +%y%m%d).sql
之後新增定時任務
crontab -e
執行後開啟類似vim的東西,新增需要執行的任務
45 11 * * * /home/mysql/shell/file_name.sh
分鐘(0-59) 小時(0-23) 幾號(1-31) 月份(1-12) 星期(0-7,0和7都是週日);
*表示任何值;使用「,」隔開多個值;使用"-"表示區間 1-5 表示1,2,3,4,5;
所以上面寫的任務表示:每天的11點45分執行後面的sh檔案。
使用explain + sql,字段解釋如下:
id,標識,表示語句執行的優先順序,數字越大則越早執行,相同數字,則靠上的早執行;
select_type,
******:簡單select(不使用union或子查詢)
primary:最外面的select
union:union中的第二個或後面的select語句
dependent union:union中的第二個或後面的select語句,取決於外面的查詢
union result:union 的結果
subquery:子查詢中的第乙個select
dependent subquery:子查詢中的第乙個select,取決於外面的查詢
derived:匯出表的select(from子句的子查詢)
table,輸出行所用的表,為了便於追蹤,表的別名最好可以看出來是哪個表。
type,連線型別,按照最佳到最差排序如下,通常要求最少是range。
ystem:表僅有一行(=系統表)。這是const聯接型別的乙個特例。
const:表最多有乙個匹配行,它將在查詢開始時被讀取。因為僅有一行,在這行的列值可被優化器剩餘部分認 為是常數。const表很快,因為它們只讀取一次!
eq_ref:對於每個來自於前面的表的行組合,從該表中讀取一行。這可能是最好的聯接型別,除了const型別。
ref:對於每個來自於前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。
ref_or_null:該聯接型別如同ref,但是新增了mysql可以專門搜尋包含null值的行。
index_merge:該聯接型別表示使用了索引合併優化方法。
unique_subquery:該型別替換了下面形式的in子查詢的ref: value in (select primary_key from single_table where some_expr) unique_subquery是乙個索引查詢函式,可以完全替換子查詢,效率更高。
index_subquery:該聯接型別類似於unique_subquery。可以替換in子查詢,但只適合下列形式的子查詢中的 非唯一索引: value in (select key_column from single_table where some_expr)
range:只檢索給定範圍的行,使用乙個索引來選擇行。
index:該聯接型別與all相同,除了只有索引樹被掃瞄。這通常比all快,因為索引檔案通常比資料檔案小。
all:對於每個來自於先前的表的行組合,進行完整的表掃瞄。
possible_keys,這個的意思是可能會使用那些索引,只是可能,不是真實使用。
key,這個才表示執行中真正使用的索引。
key_len,索引長度
ref,索引所在列
rows,顯示mysql認為要遍歷的行數。
filtered,顯示了通過條件過濾出的行數的百分比估計值。
1、比較運算子盡量用"=",不要用"<>","=「有使用索引的機率
2、明知只有一條查詢結果,就使用"limit 1」
3、字段選擇合適的資料型別,能用smallint就不用int。
4、使用union all 代替 union,如果結果集允許重複的話
5、同樣的查詢結果,盡量保持查詢語句一致,這樣可以使用查詢快取
6、盡量避免使用select *
7、where、join、order by語句字段盡量被索引
8、將大的delete,update or insert 查詢變成多個小查詢
資料庫一直是我的弱項,這段時間找工作體現的就更明顯了。所以~~努力,加油。
這兩篇其實是更像收集的一些筆記,後面會對mysql有比較深入的學習記錄。
~ . ~
mysql 學習筆記01
引子 alter table 表名 add change modify drop alter table 表名 add 列名 型別 例 alter table students add birthday datetime alter table 表名 change 原名 新名 型別及約束 例 alt...
MySQL學習筆記 01 入門
1.資料庫的英文單詞 database 簡稱 db 2.什麼資料庫?用於儲存和管理資料的倉庫。3.資料庫的特點 1.持久化儲存資料的。其實資料庫就是乙個檔案系統 2.方便儲存和管理資料 3.使用了統一的方式運算元據庫 sql 4 配置 mysql服務啟動 1.手動。2.cmd services.ms...
學習筆記 01
在網上搜尋了一些資料,由於不知道哪些入門容易,所以先看看找到的資料,也對.net有個初步了解。將資料作了個整理 net framework 執行環境 visual studio net 開發工具 microsoft windows server 2003 企業伺服器 microsoft office...