MYSQL引擎,事務,索引
什么是儲存引擎?
又叫表的儲存方式。常用的分為三種 myisam,innodb,memory
myisam會將一張表分為字段,內容,索引三個文件來表示。這種儲存方式是可以被壓縮的,并且節約內存。但是這種儲存方式不支持事務。
表創建的起初,默認的儲存引擎為innodb,這種儲存方式非常的安全因為數據庫崩潰后可以自動恢復,而且支持事務,但是這種儲存方式效率不是很高,不能很好的節約空間
memory內存儲存,這種儲存方式效率非常快,因為數據跟索引都存在內存中。但是數據斷電就會消失。(內存可以直接直接訪問,不用跟硬盤進行交互)
什么是事務?(重點)
事務其實就是一個完整的業務邏輯。拿轉賬來說沒如果a給b轉賬100.這就是一個完整的業務邏輯
什么是索引?
mysql數據庫的索引是添加在字段上面的,作用是為了提高表的查找效率,類似于一本書的目錄、
索引的實現原理類似于java的二叉樹。
(注意)一張表的主鍵默認會添加索引,或者一張表的字段如果有unique約束的話也會自動添加索引。另外
在任何的數據庫當中,任何一張表的
任何一條記錄在硬盤儲存上都有一個硬盤的物理儲存編號
如果一張表的主鍵id為
id 物理儲存編號
1 0*1111
3 0*222
2 0*333
5 0*444
4 0*555
在mysql中,索引事一個單獨的對象,不同的儲存引擎以不同的形式存在。但是,無論索引儲存在哪里,索引在mysql中都是以一個樹
的形式存在的
它會轉換為類似于二叉樹的樣子就是1作為頂部,其他的比1小的排在左邊,比1大的排在右邊。在儲存的同時,對應的id的物理儲存編號
也會儲存進去

如果想查找id為5的主鍵時
select * from 表名 where id字段=5;
mysql發現id字段上面有索引對象的時候,會通過索引對象快速定位為id為5的位置
定位成功后得到物理儲存編號,立刻轉換sql語句為
select * from 表名 where 物理儲存編號=0*444
然后通過硬盤的儲存編號直接定位實現查找
總結
當你給字段添加索引的時候,那么該字段會變成一棵二叉樹的形式,目的是為了縮小掃描范圍
然后通過id找到物理儲存編號后直接定位

如果想給上面的一張表jon字段創建索引的sql語句為
create index emp_job_index on emp(job);即可
create index 表名_添加索引的表字段_index on 表名(添加索引的表字段);
刪除索引的語法為
drop index emp_job_index on emp;
drop index 表名_刪除索引的表字段_index on 表名;
索引失效?
模糊查詢在以%號開始的時候索引會失效。
浙公網安備 33010602011771號