
《MysqL入门将MysqL的临时目录建立在内存中的教程》要点:
本文介绍了MysqL入门将MysqL的临时目录建立在内存中的教程,希望对您有用。如果有疑问,可以联系我们。
@H_419_5@
MysqL 系统会在内存(MEMORY)和磁盘(MyISAM)中建立临时表,如何能知道在磁盘中建立了多少临时表以及在内存中建立多少临时表呢?你可以通过下面命令获知:
MysqL教程@H_419_5@
MysqL> SHOW GLOBAL STATUS liKE 'Created_tmp%tables';+-------------------------+----------+| Variable_name | Value |+-------------------------+----------+| Created_tmp_disk_tables | 49094 || Created_tmp_tables | 37842181 |+-------------------------+----------+
很显然,在内存中的临时表的性能要比在磁盘中好得多得多,因此我们希望尽可能的在内存中建立临时表.MysqL教程@H_419_5@
为了实现这个要求,我们先检查下临时表的配置大小:
MysqL教程@H_419_5@
MysqL> SHOW GLOBAL VARIABLES liKE '%table_size';+---------------------+----------+| Variable_name | Value |+---------------------+----------+| max_heap_table_size | 25165824 || tmp_table_size | 25165824 |+---------------------+----------+
如果临时表的大小比上述值小,则放于内存中的 MEMORY 表;如果比上述值大则存放于磁盘中的 MyISAM 表.MysqL教程@H_419_5@
但还有一个其他的因素会导致存放到磁盘的 MyISAM 表,那就是 MEMORY 表不能处理 TEXT 和 BLOG 类型数据.这种情况下 MysqL 会直接写入磁盘中的 MyISAM,并算作是 Created_tmp_disk_tables 的值.MysqL教程@H_419_5@
MysqL教程@H_419_5@
如果临时表已经开始导致严重的 I/O 性能问题,那么你就要考虑使用磁盘内存映射来代替物理磁盘.MysqL教程@H_419_5@
在 linux 上我们有两种方法在内存中建立 RAM-disk,分别是 ramfs 和 tmpfs.MysqL教程@H_419_5@
这里我们推荐使用 tmpfs.MysqL教程@H_419_5@
可通过如下命令来创建 RAM-disk:
MysqL教程@H_419_5@
shell> mkdir -p /mnt/ramdiskshell> chown MysqL:MysqL /mnt/ramdiskshell> mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk
为了在系统下次启动时自动创建,我们可以将下列脚本置于 /etc/fstab 文件中:MysqL教程@H_419_5@
MysqL教程@H_419_5@
tmpfs /mnt/ramdisk tmpfs rw,mode=1777 0 0
MysqL 还是将数据写到默认的磁盘,可通过下面命令来检查:
MysqL教程@H_419_5@
MysqL> SHOW GLOBAL VARIABLES liKE 'tmpdir';
+---------------+-------+| Variable_name | Value |+---------------+-------+| tmpdir | /tmp |+---------------+-------+
你可以修复 my.cnf 文件来改变这个路径,然后重启数据库.
MysqL教程@H_419_5@ 总结
以上是内存溢出为你收集整理的Mysql入门将MySQL的临时目录建立在内存中的教程全部内容,希望文章能够帮你解决Mysql入门将MySQL的临时目录建立在内存中的教程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)