辛星解读mysql中的MyISAM引擎_MySQL
很多以前的教科书上都是写的MyISAM是mysql的默认存储引擎,其实自从mysql5.5开始,默认存储引擎就已经改变成为InnoDB了,由于InnoDB在很多方面有着不可替代的功能,因此,很多人喜欢研究InnoDB也在情理之中,我也很喜欢InnoDB。但是呢,对于MyISAM,就跟着辛星辛博士来认识一下吧。
第一点就是MyISAM不支持事务和外键,也正是基于这一点,很多人不喜欢MyISAM。但是MyISAM并不着急改变自己,因为这个引擎的重心是性能,而不是功能,不可否认,MyISAM的性能是非常卓越的,尤其在读数据上面。
第二点就是它的文件格式,一个MyISAM表通常分为三部分,第一部分是xxx.frm,这个文件用于存储表的定义,我们使用alter table的时候就会修改这个数据,因此使用alter table的速度是比较快的,第二部分是后缀名是myd的文件,其实这里的d是data的首字母,用于存放MyISAM的数据文件,第三部分是后缀名是myi的文件,这里的i是index的首字母,用于存放MyISAM的索引文件。默认情况下数据文件和索引文件是放在同一个目录下的,但是我们也可以放在不同的目录来获得更高的速度。
第三点就是MyISAM支持三种不同的存储格式,它们分别是静态格式、动态格式和压缩格式,这里注意压缩格式只能使用myisampack工具来创建。先说静态格式,它也是MyISAM的默认存储格式,当我们的表中不包含变量长度列比如varchar等数据类型时,它会自动使用这个格式,每一行都会选用固定的字节数存储。静态格式的优点就是查找速度非常快,容易缓存,容易修复(我在前面讲数据碎片的时候提到过用optimize table来修复表),缺点就是占据的磁盘空间要多一些。然后说动态格式,动态格式较为复杂一些,因为每行都有一个表明行有多长的列。每个记录仅仅需要必需大小的空间,如果一个记录变大的话,它就按照需要被分开成为多片,造成记录碎片。比如当我们用扩展长度的信息更新数据,该行就会产生碎片。因为动态的原因,也就更容易产生碎片,所以我们往往需要多次的优化表。
       对于压缩表,我们应该先建立一个表,然后使用myisampack来压缩,压缩之后的表会占用较小的磁盘空间,这样会最小化磁盘的使用,而且它是每个记录单独压缩的,所以访问的时候的开销还是蛮小的,它还会修改相应的我们的数据类型。比如一个列的值在-128到127之间,但是我们使用了int来存储,那么它会自动转化为tinyint来存储。如果一个列只有一组很小的可能的值,则列的类型被转化为ENUM。
那么很多人可能想说我们实例操作一下表的压缩吧,好的,辛星童鞋绝对满足大家的要求,我们来实例操作一下,不过必须说明的是,对于太小的表,是不会去压缩的,比如下面的两个例子:
C:\Users\Administrator>myisampack user.MYI user.MYI is too small to compress C:\Users\Administrator>myisampack db.MYI db.MYI is too small to compress
那我们找个稍微大一点的表来做实验:
C:\Users\Administrator>myisampack help_keyword.MYI Compressing help_keyword.MYD: (483 records) - Calculating statistics - Compressing file 95.15% Remember to run myisamchk -rq on compressed tables
此时,表的压缩就完成了,可以看出我们的表中原来存放了483条记录,而且它还提示我们使用myisamchm来解压缩。
第四点问题就是锁定和并发,MyISAM在加锁的时候会对整张表都加锁,这也是MyISAM广为诟病的一点,但是在处理并发上,在读取数据的时候,所有的表上都可以获得共享锁,也就是每个连接会互不干扰,而在写数据的时候,会获得排他锁,会对整个表进行加锁,其他的请求包括读和写都必须处于等待状态。
第五点就提到了表的修复,这一点也是MyISAM的方便的地方,它可以使用【check table 表名】来检测表,还可以使用【repair table 表名】来修复表,当然还可以使用optimize来优化表,比如去除数据碎片等等。
第六点也是比较重要的一点,那就是,MyISAM是支持全文索引的,但是InnoDB不支持,这也是MyISAM少数的几个比InnoDB功能还多的功能,但是目前的MyISAM貌似还是不支持中文,不过我们可以使用第三方技术来弥补这一点。
这一次就先写到这里吧,期待您的关注。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

解決SAS連接Oracle資料庫時出現引擎問題,需要具體程式碼範例在使用SAS軟體進行資料分析時,經常需要連接資料庫來取得資料進行分析處理。而其中連接Oracle資料庫是比較常見的操作。然而,有時候在連接Oracle資料庫時會出現引擎問題,導致連線失敗或無法正常操作。本文將介紹如何解決在SAS軟體中連接Oracle資料庫時出現引擎問題的情況,並提供具體的程式碼

隨著網路技術的不斷發展,網頁模板引擎成為了網站開發中不可或缺的一部分。 PHP網頁模板引擎是其中一種常用的網頁模板引擎。本文將介紹PHP網頁範本引擎的使用方法及常見問題。一、什麼是PHP網頁模板引擎? PHP網頁範本引擎是一種將網頁設計與業務邏輯分開的技術。採用模板引擎的方式可以將網頁的顯示與邏輯處理分開,使得程式碼整潔清晰,易於維護。 PHP網頁模板引擎與原

從ChatGPT橫空出世的那天起,微軟應該會感到慶幸。除了慶幸自己幾年前的10億美元沒白投。更重要的是,ChatGPT是友軍,不是對手。而其他科技大廠的心情就很複雜了,尤其是微軟的老對手谷歌。谷歌老員工、Gmail的創作者之一Paul Buchheit近日表示,像ChatGPT這樣的人工智慧聊天機器人將摧毀谷歌,就像當年搜尋引擎徹底幹掉黃頁電話簿一樣。至於時間,也就是這兩年的事。 Buchheit週三在推特上說:「Google可能只需要一兩年就會被徹底顛覆。AI將會消滅搜尋引擎的結果頁面,即使後

連續兩天,我們都在見證歷史。矽谷大廠已經劍拔弩張,ChatGPT引爆的這場搜尋引擎大戰,一觸即發。前一天,Google發布了下一代對話AI系統Bard,緊隨其後,微軟在第二天官方宣布了新版必應和Edge的消息。現在,全新的必應Bing已經可以在Edge上體驗了!雖然功能還比較有限。而微軟市值,也在一夜間漲超800億美元(約5,450億元),達到五個月來新高。另一巨頭Google也漲超4.6%,最新總市值1.38兆美元,為四個月來新高。 ChatGPT搜尋正式誕生!北京時間今日凌晨,微軟發表會在華盛頓雷德蒙德如
