(5)mysql常用存储引擎_MySQL
概述
??mysql5.5之前默认存储引擎是MyISAM,5.5之后改为InnoDB。若要修改默认引擎,可以修改配置文件中的default-storage-engine。可以通过show engines来查看当前数据库支持的引擎。使用select engine from information_schema.engines where transactions = 'yes';来查看哪些引擎支持事务。在创建表到时候通过engine=...或type=...来指定所要使用到引擎。
MyISAM
它不支持事务,也不支持外键,其优势是访问的速度快,对事务完整性没有要求的或者以select/insert为主的应用基本上可以使用这个引擎来创建表。每个MyISAM在磁盘上都有3个文件,其文件名都与表名相同,但扩展名是:
.frm(表定义) .MYD(MYDate:存储数据) .MYI(MYIndex:存储索引) .MYD文件和.MYI文件可以放置在不同的目录中,通过 data directory 和index directory语句指定。 MyISAM类型的表可能会损坏,可以使用CHECK TABLE语句来检查MyISAM表的健康,并用REPAIR TABLE语句修复一个损坏到MyISAM表。MyISAM支持3种不同的存储格式:
静态(固定长度)表 动态表 压缩表??在静态表中,如果需要保存的内容后面本来就带有空格,那么在返回结果的时候会去掉公共的。
??在动态表中,记录不固定,优点是占用空间相对比较少,缺点是频繁的更新和删除记录会产生碎片,需要定期执行optimize table 来改善性能。
??在压缩表中,由myisampack工具创建,占据非常小的磁盘空间。因为每个记录都被单独压缩的。
InnoDB
InnoDB支持事务安全,对比MyISAM引擎,InnoDB写的效率差一些,并且会占据更多的磁盘空间。 InnoDB自动增长列可以手工插入,但是插入的值是空或者0,则实际插入的将是自动增长后的值。可以使用last_insert_id()查询当前线程最后插入记录使用的值。可以通过alert table *** auto_increment=n;语句强制设置自动增长值。 对于InnoDB表,自动增长列必须是索引。如果是组合索引,也必须是组合索引的第一列,但是对于MyISAM表,自动增长列可以是组合索引的其他列,这样插入记录后,自动增长列是按照组合索引到前面几列排序后递增的。 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。在创建索引的时候,可以指定在删除、更新父表时,对子表进行的相应操作,包括restrict、cascade、set null和no action。其中restrict和no action相同,是指限制在子表有关联的情况下,父表不能更新;casecade表示父表在更新或删除时,更新或者删除子表对应的记录;set null 则表示父表在更新或者删除的时候,子表对应的字段被set null。当某个表被其它表创建了外键参照,那么该表对应的索引或主键被禁止删除。可以使用set foreign_key_checks=0;临时关闭外键约束,set foreign_key_checks=1;打开约束。InnoDB存储表和索引有如下两种方式:
使用共享表空间存储。 使用多表空间存储。MEMORY
memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。 每个MEMORY表中放置到数据量的大小,受到max_heap_table_size系统变量的约束,这个系统变量的初始值是16M,同时在创建MEMORY表时可以使用MAX_ROWS子句来指定表中的最大行数。 memory主要用于那些内容变化不频繁的代码表,或作为统计操作的中间结果表。MERGE
merge存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,MERGE表中并没有数据,对MERGE类型的表可以进行查询、更新、删除的操作,这些操作实际上是对内部的MyISAM表进行操作。 对于对MERGE表进行的插入操作,是根据INSERT_METHOD子句定义的插入的表,可以有3个不同的值,first和last值使得插入操作被相应的作用在第一个或最后一个表上,不定义这个子句或者为NO,表示不能对这个MERGE表进行插入操作。 可以对MERGE表进行drop操作,这个操作只是删除MERGE表的定义,对内部的表没有任何影响。 MERGE在磁盘上保留2个以MERGE表名开头文件:.frm文件存储表的定义;.MRG文件包含组合表的信息,包括MERGE表由哪些表组成,插入数据时的依据。可以通过修改.MRG文件来修改MERGE表,但是修改后要通过flush table刷新。 merge表与分区表的区别是:merge表不会智能的将记录写到对应的表中,而分区表可以的。总结
仍一张表作为总结:

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

探索Canvas框架:了解常用的Canvas框架有哪些,需要具體程式碼範例引言:Canvas是HTML5中提供的一個繪圖API,透過它我們可以實現豐富的圖形和動畫效果。為了提高繪圖的效率和便利性,許多開發者開發了不同的Canvas框架。本文將介紹一些常用的Canvas框架,並提供具體程式碼範例,以幫助讀者更深入地了解這些框架的使用方法。一、EaselJS框架Ea

Spring是一個開源框架,提供了許多註解來簡化和增強Java開發。本文將詳細解釋常用的Spring註解,並提供具體的程式碼範例。 @Autowired:自動組裝@Autowired註解可以用於自動組裝Spring容器中的Bean。當我們在需要依賴的地方使用@Autowired註解時,Spring將會在容器中尋找匹配的Bean並自動注入。範例程式碼如下:@Auto

Redmi官方今日宣布,全新RedmiGPro2024將於3月4日正式發表。也就是說,下週我們將迎來這款令人期待的新品發表會。 RedmiGPro2024以電競旗艦身份全面登場,將手機產業能力深度融入筆電業務,呈現210W超強性能釋放,Redmi性能再創新高。搭載i9-14900HX處理器與RTX4060顯示卡,將電競與創作完美結合,實現雙重進化。就此來看,這款新品的性能表現將會再次提升,實際效果如何令人期待。官方預熱中提到,全新RedmiGPro2024帶來了狂暴引擎PC版。手機技術賦能,三大子引

黃院士在《Cyberpunk2077》裡搞的智能NPC,已經飆起中文了?量子位的一手體驗,親眼見證了NPC們流利地用中英雙語對話,表情動作自然,口型也能對上……如果不是眼前就有一塊屏幕,真的會有種身臨其境之感。今年的CES展上,英偉達用智慧引擎AvatarCloudEngine(ACE),讓遊戲NPC「活」了起來,引起了不小的震撼。 △CES上展示的智慧NPC使用ACE,遊戲中的角色可以與玩家進行逼真的語音對話,同時展現出生動的表情和肢體動作,而無需事先準備劇本。亮相當時,就有育碧、騰訊、網易、米哈遊等國

即時全域光照(Real-time GI)一直是電腦圖形學的聖杯。多年來,業界也提出多種方法來解決這個問題。常用的方法包透過利用某些假設來約束問題域,例如靜態幾何,粗糙的場景表示或追蹤粗糙探針,以及在兩者之間插值照明。在虛幻引擎中,全局光照和反射系統Lumen這項技術便是由Krzysztof Narkowicz和Daniel Wright一起創立的。目標是建造一個與前人不同的方案,能夠實現統一照明,以及類似烘烤一樣的照明品質。近期,在SIGGRAPH 2022上,Krzysztof Narko

10月8日消息,美國汽車市場正在經歷一場引擎蓋下的變革,以前備受喜愛的六缸和八缸動力發動機正逐漸失去統治地位,而三缸發動機則嶄露頭角。 10月8日的消息顯示,美國汽車市場正在經歷引擎蓋下的變化。過去備受喜愛的六缸和八缸動力引擎正在逐漸失去統治地位,而三缸引擎則開始嶄露頭角在大多數人的印像中,美國人鍾情於大排量車型,而"美式大V8"一直是美國車的代名詞。然而,根據外媒近期公佈的數據,美國汽車市場的格局正在發生巨大變化,引擎蓋下的戰鬥正愈演愈烈。據了解,在2019年之前,美

隨著網路的發展,資料安全已成為我們日常工作中必須關注的嚴肅議題。針對敏感的個人資訊或商業數據,加密變得特別重要。在PHP開發中,有些加密演算法被廣泛應用,下面我們就來了解PHP常用的加密演算法。一、Base64編碼Base64編碼常用於在網頁傳輸或郵件中傳輸二進位數據,因為網頁或郵件只能傳送發送字串類型數據,不能直接傳輸二進位數據。 Base64就是一種解

十五大比特幣逃頂指標深度解析:2025年市場展望本文深入分析了十五個常用的比特幣逃頂指標,其中比特幣Rhodl比率、USDT活期理財和山寨幣季節指數已於2024年觸及逃頂區間,引發市場關注。面對潛在風險,投資者該如何應對?讓我們逐一解讀這些指標,並探討合理的應對策略。一、關鍵指標詳解AHR999囤幣指標:由ahr999創建,輔助比特幣定投策略。當前值為1.21,處於觀望區間,建議謹慎。鏈接AHR999逃頂指標:AHR999囤幣指標的補充,用於識別市場頂部。當前值為2.48,本週
