241.事務(wù)的四大特性ACID:atomicity原子性(不可再分割)愚臀、consistency一致性、isolation隔離性(相當于誰先搶到誰加鎖矾利,只有釋放鎖后其他才能處理)姑裂、durability持久性(一旦事務(wù)提交,將真正地持久化存在數(shù)據(jù)庫了)梦皮。
242.使用Python代碼操作MySQL的增刪改時炭分,因為必須要commit,即:默認開啟了事務(wù)剑肯。
243.Window黑窗口捧毛、Mac終端中操作數(shù)據(jù)表,默認每一行增刪改語句都是自成事務(wù)让网。查詢不涉及更新數(shù)據(jù)呀忧,無所謂事務(wù)不事務(wù)。
244.索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個組成部分)溃睹,索引包含著對數(shù)據(jù)表里所有記錄的引用指針而账。說白了就是,數(shù)據(jù)庫索引好比生活中一本書前面的目錄因篇,能加快數(shù)據(jù)庫的查找速度泞辐。
數(shù)據(jù)庫中的索引思想,好比C語言的指針思想竞滓。
245.開啟運行時間監(jiān)測咐吼,SQL語句:set profiling=1;
...
查看執(zhí)行的耗時:show profiles;
246.創(chuàng)建索引:create index 索引名 on 表名(字段名)
或者當被創(chuàng)建索引的字段為字符類型時,例如為字段name varchar(20)創(chuàng)建索引商佑,則通常指定字段的字符的最大長度锯茄,書寫格式為:create index 索引名 on 表名(name(20))
,其他類型的則不用指定茶没。
247.索引通常數(shù)據(jù)量越大肌幽,效果也更明顯。例如:10萬條數(shù)據(jù)時抓半,用索引比不用索引喂急,查詢效率就已提高了2個數(shù)量級。
248.索引原理:通過不斷縮小想要的數(shù)據(jù)的查找范圍來最終篩選出目標數(shù)據(jù)笛求,同時把隨機查找變成順序查找廊移,也就是總是通過同一種方式鎖定目標數(shù)據(jù)讥蔽。
249.索引是一種特殊的文件,一般一個索引只關(guān)聯(lián)著一張數(shù)據(jù)表的一個字段画机。對同一張數(shù)據(jù)表的其他未有索引的字段進行查詢冶伞,這個已有的索引是起不到任何優(yōu)化作用的。說白了就是步氏,只有用已建立索引的字段進行查詢响禽,索引才會發(fā)揮作用。
250.查看一張表中已有的索引:show index from 表名;
251.刪除索引:drop 索引名 on 表名;
252.只有對數(shù)據(jù)表中非常常用的字段建立索引荚醒,并不是對每個字段都建立索引的芋类。因為一張表中索引建立太多,反過來是會影響數(shù)據(jù)更新速度的界阁,每次更新數(shù)據(jù)都要更新索引侯繁,對更新數(shù)據(jù)效率不利。另外泡躯,索引也是會占用內(nèi)存空間的贮竟。
253.默認情況下,一張表的主鍵较剃、外鍵在創(chuàng)建表時咕别,都自動建立了索引。也就是写穴,使用一張表的主鍵或外鍵查詢時惰拱,比沒有建立索引的字段去查詢速度會高很多。
254.創(chuàng)建索引的底層是用C實現(xiàn)的啊送,很多涉及到效率的優(yōu)化偿短,大多都是用C實現(xiàn)的。
255.創(chuàng)建賬戶并對某數(shù)據(jù)表授權(quán):grant 權(quán)限列表 on 數(shù)據(jù)庫名.數(shù)據(jù)表 to '用戶名'@'用戶主機' identified by '密碼';
說明:權(quán)限列表馋没,如讓賬戶只有查詢權(quán)限昔逗,則寫:select
;如果讓賬戶具有所有權(quán)限披泪,則寫:all privileges
如果直接對某數(shù)據(jù)庫創(chuàng)建賬戶并授權(quán)纤子,則用數(shù)據(jù)庫名.*
即可搬瑰。
'用戶主機' 可以設(shè)置為'localhost' 或者具體的IP稿茉。如果想要任一臺電腦都可訪問梁沧,則寫%
即可。
256.修改某賬戶的權(quán)限:grant 權(quán)限列表 on 數(shù)據(jù)庫名.數(shù)據(jù)表 to '用戶名'@'用戶主機' with grant option;
修改后一定記得刷新一下權(quán)限:flush privileges;
257.刪除賬戶方式有二,第一種root登錄后直接去刪除:drop user '用戶名'@'用戶主機';
第二種是去賬戶數(shù)據(jù)表中刪除賬戶:delete from user where user='賬戶名';
刪除后一定記得刷新一下權(quán)限:flush privileges;