索引是什么
索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個(gè)組成部分)行嗤,它們包含著對(duì)數(shù)據(jù)表里所有記錄的引用指針已日。
更通俗的說(shuō),數(shù)據(jù)庫(kù)索引好比是字典前面的目錄栅屏,能加快數(shù)據(jù)庫(kù)的查詢速度
索引目的
索引的目的在于提高查詢效率
視圖和索引的目的:方便查找
原理
通過(guò)不斷的縮小想要獲得數(shù)據(jù)的范圍來(lái)篩選出最終想要的結(jié)果捂敌,同時(shí)把隨機(jī)的事件變成順序的事件,也就是我們總是通過(guò)同一種查找方式來(lái)鎖定數(shù)據(jù)既琴。
哪些情況需要?jiǎng)?chuàng)建索引
數(shù)據(jù)量很大而且這個(gè)字段經(jīng)常查
查詢添加索引與不添加索引的效率
-- 開(kāi)啟運(yùn)行時(shí)間監(jiān)測(cè):
set profiling=1;
-- 查找第1萬(wàn)條數(shù)據(jù)ha-99999
select * from test_index where title='ha-99999';
-- 查看執(zhí)行的時(shí)間:
show profiles;
為表title_index的title列創(chuàng)建索引:
createindextitle_indexontest_index(title(10));
執(zhí)行查詢語(yǔ)句:
select*fromtest_indexwheretitle='ha-99999';
再次查看執(zhí)行的時(shí)間
showprofiles;
數(shù)據(jù)庫(kù)的索引(分段查詢)
B樹(shù)
索引的使用
-- 查看索引
show? ?index? from? 表名;
-- 創(chuàng)建索引
如果指定字段是字符串占婉,需要指定長(zhǎng)度,建議長(zhǎng)度與定義字段時(shí)的長(zhǎng)度一致
字段類型如果不是字符串甫恩,可以不填寫(xiě)長(zhǎng)度部分
create? index索引? 名稱 on? 表名(字段名稱(長(zhǎng)度))
-- 刪除索引:
drop? index? 索引名稱? on? 表名;
賬戶管理
目的:保證數(shù)據(jù)庫(kù)的安全性和穩(wěn)定性
注意:
1)進(jìn)行賬戶操作時(shí)逆济,需要使用root賬戶登錄,這個(gè)賬戶擁有最高的實(shí)例級(jí)權(quán)限
2)通常都使用數(shù)據(jù)庫(kù)級(jí)操作權(quán)限
授予權(quán)限:
1磺箕、查看所有用戶
所有用戶及權(quán)限信息存儲(chǔ)在mysql數(shù)據(jù)庫(kù)的user表中
mysql不能隨便使用
user表--root信息
查看user表的結(jié)構(gòu)
desc user;
select user,host from user; #前面user奖慌,host字段,后面的user是表
user的一列----可以登錄mysql的用戶
host--可以通過(guò)哪個(gè)地方登陸
localhost---只能在本地電腦登錄(想登錄其他人的松靡,知道密碼也不能登錄)
root-localhost---往里面添加新的用戶
host一列中的%表示可以在任何地方可以登錄
authentication_string表示密碼简僧,為加密后的值
2、創(chuàng)建賬戶&授權(quán)
創(chuàng)建的前提:必須以root管理員賬戶登錄
在公司是被授權(quán)雕欺,盡量不直接用root用戶
-- 創(chuàng)建賬戶并授予所有權(quán)限
grant select on aashford.* to 'laoweng'@'localhost' identified by 'xxxx';
只授予了查詢權(quán)限岛马,更新棉姐,刪除都不可以
創(chuàng)建一個(gè)laoli的賬號(hào),密碼為12345678啦逆,可以任意電腦進(jìn)行鏈接訪問(wèn), 并且對(duì)aashford數(shù)據(jù)庫(kù)中的所有表?yè)碛?b>所有權(quán)限
grant? all? privileges? on? aashford.*? to? ?"laoli"@"%" identified by"? 12345678";
賬戶操作
1. 修改權(quán)限
grant? ?權(quán)限名稱? on? 數(shù)據(jù)庫(kù)? ?to? ?賬戶@主機(jī)? with? grant? ?option;
-- 刷新權(quán)限
flush privileges;
2伞矩、修改密碼
使用root登錄,修改mysql數(shù)據(jù)庫(kù)的user表
使用password()函數(shù)進(jìn)行密碼加密
update? user? set? authentication_string=password('新密碼')? where? user='用戶名';
注意修改完成后需要刷新權(quán)限
刷新權(quán)限:flushprivileges
3夏志、遠(yuǎn)程登錄慎用
數(shù)據(jù)庫(kù)別用遠(yuǎn)程登錄乃坤,用SSH鏈接(幾乎無(wú)法破解)
4.、刪除賬戶
語(yǔ)法1:使用root登錄(推薦使用)
drop? user? '用戶名'@'主機(jī)';
例:drop? user? 'laoweng'@'%';
語(yǔ)法2:使用root登錄沟蔑,刪除mysql數(shù)據(jù)庫(kù)的user表中數(shù)據(jù)
delete? from? user? where? user='用戶名';
例:delete? from? user? where? user='laoweng';
-- 操作結(jié)束之后需要刷新權(quán)限
flush privileges