데이터 베이스 MySQL 튜토리얼 辛星解读mysql中的MyISAM引擎_MySQL

辛星解读mysql中的MyISAM引擎_MySQL

Jun 01, 2016 pm 01:02 PM
엔진

很多以前的教科书上都是写的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貌似还是不支持中文,不过我们可以使用第三方技术来弥补这一点。

这一次就先写到这里吧,期待您的关注。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

엔진 환경 변화: 3기통 엔진이 6기통과 8기통의 지배력에 도전합니다. 엔진 환경 변화: 3기통 엔진이 6기통과 8기통의 지배력에 도전합니다. Oct 08, 2023 pm 10:57 PM

8일 뉴스에 따르면 미국 자동차 시장은 그동안 사랑받았던 6기통과 8기통 동력엔진이 점차 그 위세를 잃어가는 가운데 3기통 엔진이 등장하고 있다. 10월 8일자 뉴스에서는 미국 자동차 시장이 내부적으로 변화를 겪고 있다는 소식을 전했습니다. 과거에 사랑받았던 6기통과 8기통 동력엔진은 점차 그 지배력을 잃어가고 있으며, 대부분의 사람들의 마음 속에는 미국인들이 대용량 배기량 모델과 '미국의 대형 V8'을 좋아하기 시작하고 있습니다. 항상 미국 자동차와 동의어였습니다. 그러나 최근 외신이 공개한 자료에 따르면 미국 자동차 시장의 지형은 엄청난 변화를 겪고 있으며 내부 경쟁도 치열해지고 있다. 2019년 이전에는 미국이

NVIDIA AI 게임 엔진 실제 테스트 : NPC와 실시간 채팅, 중국어가 유창함 NVIDIA AI 게임 엔진 실제 테스트 : NPC와 실시간 채팅, 중국어가 유창함 Mar 04, 2024 am 09:40 AM

'사이버펑크 2077'에서 황학자가 만든 지능형 NPC는 이미 중국어를 할 수 있다고요? 중국어와 영어로 유창하게 대화하는 NPC들의 자연스러운 표정과 움직임, 그리고 입 모양의 조화까지.. 눈앞에 스크린이 없었다면 정말 그곳에 있는 것 같은 느낌이 들었습니다. 올해 CES 전시회에서 엔비디아는 자사의 지능형 엔진인 아바타 클라우드 엔진(ACE)을 사용해 게임 NPC를 '살아있다'로 만들어 적잖은 충격을 안겼다. △CES에 전시된 지능형 NPC는 ACE를 사용한다. 게임 속 캐릭터는 미리 대본을 준비하지 않고도 생생한 표정과 신체 움직임을 보여주며 플레이어와 실감나는 음성 대화를 할 수 있다. 데뷔 당시 유비소프트, 텐센트, 넷이즈, 미호요 등이 있었다.

초현실적인 렌더링! 언리얼 엔진 기술 전문가가 전역 조명 시스템 Lumen에 대해 설명합니다. 초현실적인 렌더링! 언리얼 엔진 기술 전문가가 전역 조명 시스템 Lumen에 대해 설명합니다. Apr 08, 2023 pm 10:21 PM

실시간 전역 조명(Real-time GI)은 항상 컴퓨터 그래픽의 성배였습니다. 수년에 걸쳐 업계에서는 이 문제를 해결하기 위해 다양한 방법을 제안해 왔습니다. 일반적인 방법에는 정적 기하학, 대략적인 장면 표현 또는 대략적인 프로브 추적과 같은 특정 가정을 활용하고 둘 사이에 조명을 보간하여 문제 영역을 제한하는 것이 포함됩니다. 언리얼 엔진에서 전역 조명 및 반사 시스템인 Lumen 기술은 Krzysztof Narkowicz와 Daniel Wright가 공동 창립했습니다. 목표는 이전 제품과 달리 균일한 조명과 구워진 듯한 조명 품질이 가능한 솔루션을 구축하는 것이었습니다. 최근 SIGGRAPH 2022에서 Krzysztof Narko는

Redmi G Pro 2024 3월 4일에 만나요, 아이스 쿨링과 폭력적인 엔진 PC 버전 지원 Redmi G Pro 2024 3월 4일에 만나요, 아이스 쿨링과 폭력적인 엔진 PC 버전 지원 Mar 02, 2024 pm 12:19 PM

Redmi는 오늘 새로운 Redmi GPro 2024가 3월 4일에 공식 출시될 것이라고 공식 발표했습니다. 즉, 다음 주에 우리는 이 흥미로운 신제품을 출시하게 될 것입니다. RedmiGPro2024는 e-스포츠 플래그십으로 전면 데뷔하여 휴대폰 업계의 역량을 노트북 사업에 깊이 통합하고 210W 슈퍼 성능 출시를 선보이며 Redmi 성능이 새로운 최고치를 달성했습니다. i9-14900HX 프로세서와 RTX4060 그래픽 카드를 탑재해 e스포츠와 창작을 완벽하게 결합해 이중 진화를 이룬다. 이런 관점에서 볼 때 이번 신제품의 성능은 다시 한 번 향상될 것이며 실제 효과는 흥미롭다. 공식 워밍업에서 새로운 Redmi G Pro 2024가 강력한 엔진의 PC 버전을 제공한다고 언급되었습니다. 휴대폰 기술 강화, 세 가지 주요 요인이 주도

SAS가 Oracle 데이터베이스에 연결할 때 엔진 문제 해결 SAS가 Oracle 데이터베이스에 연결할 때 엔진 문제 해결 Mar 08, 2024 am 10:12 AM

SAS가 Oracle 데이터베이스에 연결할 때 엔진 문제를 해결하려면 특정 코드 예제가 필요합니다. 데이터 분석을 위해 SAS 소프트웨어를 사용할 때 분석 및 처리를 위한 데이터를 얻기 위해 데이터베이스에 연결해야 하는 경우가 많습니다. 그중 Oracle 데이터베이스에 연결하는 것은 비교적 일반적인 작업입니다. 그러나 Oracle 데이터베이스에 연결할 때 엔진 문제가 발생하여 연결이 실패하거나 제대로 작동하지 않는 경우가 있습니다. 이 문서에서는 SAS 소프트웨어에서 Oracle 데이터베이스에 연결할 때 엔진 문제를 해결하는 방법을 소개하고 특정 코드를 제공합니다.

PHP 웹 템플릿 엔진 및 FAQ를 사용하는 방법 PHP 웹 템플릿 엔진 및 FAQ를 사용하는 방법 Jun 08, 2023 pm 12:23 PM

인터넷 기술의 지속적인 발전으로 인해 웹 템플릿 엔진은 웹사이트 개발에 없어서는 안 될 부분이 되었습니다. PHP 웹 페이지 템플릿 엔진은 일반적으로 사용되는 웹 페이지 템플릿 엔진 중 하나입니다. 이 문서에서는 PHP 웹 템플릿 엔진을 사용하는 방법을 소개하고 자주 묻는 질문에 답변합니다. 1. PHP 웹 템플릿 엔진이란 무엇입니까? PHP 웹 템플릿 엔진은 웹 디자인과 비즈니스 로직을 분리하는 기술입니다. 템플릿 엔진을 사용하면 웹 페이지의 표시와 논리적 처리를 분리하여 코드를 깔끔하고 명확하며 유지 관리하기 쉽게 만들 수 있습니다. PHP 웹 템플릿 엔진 및 원본

SAS가 Oracle 엔진을 찾을 수 없는 문제 해결 SAS가 Oracle 엔진을 찾을 수 없는 문제 해결 Mar 08, 2024 pm 12:21 PM

SAS가 Oracle 엔진을 찾을 수 없는 문제를 해결하려면 특정 코드 예제가 필요합니다. 데이터 처리 및 분석을 위해 SAS 소프트웨어를 사용할 때 Oracle 데이터베이스가 일반적인 선택인 외부 데이터베이스에 연결해야 하는 상황이 자주 발생합니다. . 그러나 때때로 Oracle 데이터베이스에 연결하려고 하면 SAS에서 Oracle 엔진을 찾을 수 없다는 메시지가 표시되어 작업에 문제가 발생합니다. 이 문서에서는 SAS가 Oracle 엔진을 찾을 수 없는 문제를 해결하는 방법을 소개하고 특정 기능을 제공합니다.

Gmail의 아버지: ChatGPT를 사용하면 검색 엔진이 2년 이상 살아남지 못할 것입니다. Gmail의 아버지: ChatGPT를 사용하면 검색 엔진이 2년 이상 살아남지 못할 것입니다. Apr 14, 2023 pm 01:22 PM

ChatGPT가 탄생한 날부터 Microsoft는 행운을 누려야 합니다. 몇 년 전에 제가 투자한 10억 달러가 헛되지 않았다는 사실에 기뻐하는 것 외에도요. 더 중요한 것은 ChatGPT가 상대가 아닌 우호적인 세력이라는 점입니다. 다른 주요 기술 기업의 분위기는 매우 복잡합니다. 특히 Microsoft의 오랜 라이벌인 Google의 경우 더욱 그렇습니다. Google의 베테랑 직원이자 Gmail 창시자 중 한 명인 Paul Buchheit는 최근 검색 엔진이 전화번호부 전화번호부를 완전히 없앤 것처럼 ChatGPT와 같은 인공 지능 챗봇이 Google을 파괴할 것이라고 말했습니다. 시간적으로는 1~2년 정도 밖에 되지 않습니다. 부크하이트는 수요일 트위터에 "구글이 완전히 붕괴되려면 1~2년밖에 걸리지 않을 것이다. AI는 검색 엔진 결과 페이지를 지울 것이다.

See all articles