文章目录
- 虚拟内存概要
- windows-server配置虚拟内存
- 技术名词解释关于mysql错误Row size too large (> 8126)
- 问题分析
- 解决办法
虚拟内存概要
虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入分页文件可释放RAM,以便完成工作。 一般而言,计算机的RAM容量越大,程序运行得越快。若计算机的速率由于RAM可用空间匮乏而减缓,则可尝试通过增加虚拟内存来进行补偿。但是,计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,因而扩增RAM容量(可加内存条)是最佳选择。
虚拟内存是Windows 为作为内存使用的一部分硬盘空间。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。
内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,WINDOWS运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,这部分空间即称为虚拟内存,虚拟内存在硬盘上的存在形式就是 PAGEFILE.SYS这个页面文件。
windows-server配置虚拟内存
高级设置
高级-设置
设置虚拟内存,之后需要重启服务器才能生效
技术名词解释关于mysql错误Row size too large (> 8126)
问题分析
Row size too large (> 8126). Changing some columns to TEXT or BLOB orusing ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help
You may want to take a look at this article which explains a lot about MySQL row sizes. It’s important to note that even if you use TEXT or BLOB fields, your row size could still be over 8K (limit for InnoDB)because it stores the first 768 bytes for each field inline in the page.
The simplest way to fix this is to use the Barracuda file format with InnoDB. This basically gets rid of the problem altogether by onlystoring the 20 byte pointer to the text data instead of storing the
first 768 bytes.
解决办法
方式一、修改mysql.ini配置文件
innodb_file_per_table
innodb_file_format = Barracuda
需要重启数据库服务才能生效
方式二、
即刻生效,但是数据库一旦重启就会失效。
mysql> set global innodb_file_per_table =ON;
mysql> SET GLOBAL innodb_file_format = barracuda;