网站首页 > 编程文章 正文
2. MyISAM存储引擎
- MyISAM存储引擎不支持事务、锁表设计,支持全文索引,主要面向一些OLAP数据库应用。
- MySQL5.5.8之前默认存储引擎是MyISAM(Windows版本除外)。
- MyISAM存储引擎的缓冲池只缓存索引文件,而不缓存数据文件。这点和大多数数据库都不同。
- MyISAM存储引擎表由MYD和MYI组成,MYD用来存放数据文件,MYI用来存放索引文件。
- MySQL5.0之前MyISAM默认支持的表大小是4G,如果需要更大的MyISAM表的话,就要制定MAX_ROWS和AVG_ROW_LENGTH属性。从5.0版本开始,MyISAM默认支持256TB的单表数据,这足够一般应用的需求。
- MyISAM存储引擎表,Mysql数据库只缓存其索引文件,数据文件的缓存交给操作系统本身完成,这与LRU算法缓存数据的大部分数据库都不同。MySQL 5.1.23之前,缓存索引的缓冲区最大只能设置为4GB,在之后的版本中,64位系统可以支持大于4GB的索引缓冲区。
其他存储引擎
- NDB: 一个集群存储引擎。数据全部放在内存中(从MySQL 5.1之后,可以将非索引数据放在磁盘上),所以主键查找速度极快,通过添加NDB数据存储节点,可以线性的提高数据库性能,是高可用、高性能的集群系统。复杂的连接操作网络开销很大,因为NDB的连接操作(JOIN)是在数据库层完成的,而不是在存储引擎层完成的。
- Memory: 之前被称为HEAP存储引擎。将表中的数据存放在内存中,如果数据库重启或发生崩溃,表中的数据全部消失。非常适合非常适合存储临时数据。默认使用hash哈希索引,而不是B+树索引。只支持表锁,并法性能差,不支持TEXT、BLOB列类型。存储变长字段varchar是按照定长char方式存储的,因此会浪费空间。MySQL数据库使用Memory存储引擎作为临时表来存放查询的中间结果集,如果中间结果集大于Memory存储引擎表的容量设置,又或者中间结果含有TEXT或BLOB字段,则MySQL会把其转换成MyISAM存储引擎表存放到磁盘中,因为MyISAM不缓存数据文件,所以这时产生的临时表的性能对于查询会有损失。
- Archive存储引擎: Archive引擎只支持INSERT和SELECT操作,从MySQL5.1开始支持索引。Archive引擎使用zlib算法将数据行(row)进行压缩后存储,压缩比可达到1:10。正如其名,Archive存储引擎非常适合存储归档数据,如日志信息。通过行锁来实现高并发的插入操作。但是不是事务安全的,目的主要是提供高速的插入和压缩。
- Federated存储引擎: Federated存储引擎并不存储数据,他只是指向一台远程MySQL数据库服务器上的表。类似SQL Server的链接服务器和Oracle的透明网关。不同的是,Federated只支持MySQL数据库表,不支持异构数据库表。
- Maria存储引擎: Maria当初是为了取代原有的MyISAM而设计的,从而成为MySQL默认存储引擎。支持缓存数据和索引文件,应用了行锁设计,提供了MVCC功能,支持事务和非事务安全的选项,以及更好的BLOB字符类型的处理性能。
其它
- 查看当前使用MySQL版本支持的引擎:
show engines\G;
连接MySQL
1. TCP/IP
mysql -h 192.168.0.101 -u root -p
通过TCP/IP连接到数据库实例的时候,MySQL数据库会先检查一张权限视图,用来判断此请求是否允许连接。该视图在MySQL架构下,表名为user。
use mysql;
select host, user, password from user;
2. 命名管道和共享内存
如果在MySQL服务器本机连接,可以通过命名管道,但是需要MySQL数据库在配置文件中启用--enable-named-pipe选项。在MySQL 4.1之后,还提供了共享内存的连接方式,需要在配置文件中添加--shared-memory实现,在连接时,MySQL客户端还需要使用--protocol=memory选项。
3. UNIX域套接字
在Linux/UNIX环境下,可以使用UNIX域套接字。UNIX域套接字并不是一个网络协议,所以只能在MySQL客户端和数据库实例在一台服务器上时使用。用户可以在配置文件中执行套接字文件的路径。如--socket=/tmp/mysql.sock。可以通过命令show variables like 'socket';来查找套接字文件。知道了套接字文件的路径后,就可以通过下面的命令连接了:
mysql -u root -S /tmp/mysql.sock
猜你喜欢
- 2024-10-09 「干货」如何进行 MySQL 用户管理?
- 2024-10-09 仅凭一条SQL,领悟MySQL的全貌(一条sql只能使用一个索引吗)
- 2024-10-09 Mysql语法基本操作(笔记)(mysql语法规范有哪些)
- 2024-10-09 好程序员Java学习路线分享MySQL目录结构
- 2024-10-09 MYSQL 登录与退出,查看当前数据库
- 2024-10-09 图解MySQL执行一条SQL的过程(mysql执行sql文件命令步骤)
- 2024-10-09 MySQL文件结构、逻辑架构及sql执行流程分析
- 2024-10-09 MySQL数据库解读之-目录结构(mysql的数据目录)
- 2024-10-09 MySQL命令总结(mysqld命令)
- 2024-10-09 kubernetes-5:mysql容器化(容器 mysql)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)