当前位置:首页 > 内存 > 正文

mysql内存存储

  • 内存
  • 2024-06-28 13:49:26
  • 5867

一、mysql需要的服务器内存4GB或更多物理内存。
根据百科上的资料,对于使用MySQL的数据库服务器,建议服务器内存不低于2GB,建议使用4GB以上的物理内存。
MySQL是瑞典公司MySQLAB开发的关系型数据库管理系统,目前是Oracle的产品。
二、MySQL内存使用以及优化中需要的几点注意
1从内存读取数据需要微秒。从磁盘读取需要几毫秒。两者之间的差异是一个数量级。所以如果要优化数据库,首先要做的就是优化



【线程】在myisam中只是用来在输入数据时临时存储数据。当我们使用下面的写语句时,这块内存区域将被用来帮助写入数组数据文件:insert...select...insertinto...values...loaddatainfile...into...[global]设置innodb存储引擎用于存储数据字典信息和一些内部数据结构的内存区域的大小。因此,当我们的mysqlinstance包含很多数据库对象(比如很多表)时,我们需要适当调整这个参数的大小,保证所有数据都在内存中,以保证效率。相对容易知道该参数的内存是否足够。因为当它太小时,mysql会在错误日志中记录一条警告。[global]用于控制innodb缓冲池中未写入数据文件的脏页(已修改但未写入数据文件的脏数据)的百分比。该值越大,从内存写入磁盘的次数就越少。因此,可以在一定程度上减少磁盘IO。但当这个值很大时,如果数据库崩溃,重启时间可能会很长。因为会有大量的事务数据需要从日志文件中检索并写入数据文件。同时,过大的比率值会导致下载操作在达到比率设置的上限后“非常暴力”写入数据,造成剧烈的性能波动。8、当我们要检索整个表的大部分数据时,索引扫描并不一定比全表扫描更好。是基于行的数据库,而读取数据是基于页的。行存储在每个页面上。如果每行中的数据量减少,那么每页中存储的行数就会增加。每次使用io时可以删除更多行。另一方面,当处理相同的数据时,会处理更少的页面。也就是减少了io的数量。直接提高性能。另外,由于我们的内存量是有限的,增加每页的行数就意味着增加每个数据块在内存中存储的数据量,提高命中率。10.我们无法改变我们存储的数据,但我们可以决定如何存储数据。1)数字类型。作为最后的手段,不要使用double类型。除了空间比较大的声音之外,还有准确度的问题。同样,不要将小数用于固定精度的十进制数。可以节省存储空间,无需任何额外的维护成本。对于存储整数,建议拆分tinyint/int/bigint,它们用于数据存储所占用的空间有一定的间隙。2)字符类型。作为最后的手段,不要使用文本类型。其处理效率低于char和varchar。固定长度字段建议为char类型。使用varchar来表示可变长度。Varchar不能指定任意大的长度。由于长度范围不同,mysql会区别对待。有一篇博客文章介绍了varchar的处理方法。假设声明了varchar(1000),那么当mysql把这条数据保存到磁盘时,设数据长度为45,那么就会占用大约45个磁盘空间。但是当这个数据在内存中时,仍然占用了1000个空间。太失落了。3)事件类型。尝试使用时间戳。占用的存储空间只有datetime类型的一半。对于需要精确到特定日期的类型,建议使用日期类型。因为它需要三个字节来存储。小于时间戳。不建议使用int来存储unixtimestamp,它不直观,也不会带来任何好处。4)对表中的字段进行适当的添加。例如,将文章的摘要与文章的信息表而不是文章的详细目录放在一起。

上一篇:mysql占了60G内存

下一篇:mysql对内存要求