집 >데이터 베이스 >MySQL 튜토리얼 >MySQL이 너무 많은 메모리를 차지하는 문제를 해결하는 방법에 대한 자세한 예
이 기사는 mysql에 대한 관련 지식을 제공합니다. 주로 과도한 메모리 사용과 관련된 문제를 해결하기 위해 Windows와 CentOS7이 사용됩니다. 모두에게 도움이 되기를 바랍니다. .
추천 학습: mysql 비디오 튜토리얼
일부 소부르주아 플레이어의 경우 서버 수와 메모리가 매우 제한적인 경우가 많습니다. 예를 들어 제 개인 서버 구성은 2코어 4G5M입니다.
4G 메모리는 실제로 Java 플레이어에게 그다지 크지 않습니다. 몇 가지 미들웨어와 자체 마이크로서비스를 여는 것은 상당히 복잡하며, 그러면 MySQL이 가장 큰 패자입니다. 내 로컬 컴퓨터의 MySQL은 몇 MB의 메모리만 차지합니다(많이 사용하지는 않지만 이 컴퓨터의 MySQL은 실제로 열려 있습니다).
서버가 400MB를 차지하므로 실제로 처리량이 없습니다. 혼자 플레이하기에는 메모리 사용량이 정말 너무 많습니다. . .
설정을 수정하면 MySQL의 메모리 사용량을 줄일 수 있다는 것을 알게 되어서 직접 사용해 보고 기록해봤습니다. 두 대의 서버를 동시에 운영하고 있기 때문에 한 대는 Windows Service 2016으로 설치하고, 다른 한 대는 CentOS7로 설치합니다. 두 서버 모두 상황이 비슷하니 참고하시라고 동시에 두 개의 기록을 만들어 보겠습니다.
구성 파일의 기본 위치는 C:ProgramDataMySQLMySQL Server 8.0my.ini입니다. 수정 사항이 있는 경우 실제 상황에 따라 찾으세요.
구성 파일의 기본 경로는 /etc/my.cnf입니다. 수정 사항이 있는 경우 실제 상황에 따라 찾아보실 수 있습니다.
윈도우에서는 Ctrl + F, 리눅스에서는 '/key'로 검색하시면 됩니다. 방법을 모르시면 바이두를 참고하시면 됩니다.
찾아 수정해야 할 세 가지가 있습니다.
table_definition_cache
를 찾아 400으로 수정했습니다.table_definition_cache
,我们修改为400
官方解释为:可以存储在定义缓存中的表定义数(来自.frm文件)。如果使用大量表,可以创建大型表定义缓存以加快表的打开速度。与普通的表缓存不同,表定义缓存占用更少的空间,并且不使用文件描述符。最小值和默认值均为400。
找到 table_open_cache
,我们修改为256
MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找不到相应信息时,才会去磁盘上读取。
官方解释为:所有线程的打开表数。增加该值会增加mysqld所需的文件描述符的数量。因此,您必须确保在[mysqld safe]部分的变量“open files limit”中将允许打开的文件量设置为至少4096。
找到 performance_schema
,修改为off
如果找不到这个的话,直接在合适的地方加上 performance_schema = off
即可。
用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况,关闭之后可以节省开销,不会使server的行为发生变化。
修改完之后保存退出。
以管理员身份启动控制台,输入 net stop mysql,然后再输入 net start mysql。
重启之后还占62M。
控制台输入 service mysqld restart 即可重启。
如果不行的话,可以试试 /etc/init.d/mysqld restart
table_open_cache
를 찾아 256으로 변경했습니다.
performance_schema
를 찾아 off로 변경하세요🎜🎜이것을 찾을 수 없다면 적절한 위치에 performance_schema = off
를 추가하시면 됩니다. 🎜🎜 하위 수준 작업 중 MySQL 서버의 리소스 소비, 리소스 대기 등을 모니터링하는 데 사용됩니다. 종료 후에는 비용을 절약할 수 있으며 서버 동작이 변경되지 않습니다. 🎜🎜수정 후 저장 후 종료하세요. 🎜🎜🎜MySQL을 다시 시작🎜🎜🎜🎜Windows Service 2016🎜🎜🎜관리자로 콘솔을 시작하고 net stop mysql을 입력한 다음 net start mysql을 입력하세요. 🎜🎜다시 시작한 후에도 여전히 62M을 차지했습니다. 🎜🎜🎜🎜🎜CentOS7🎜🎜 🎜 다시 시작하려면 콘솔에 service mysqld restart를 입력하세요. 🎜🎜🎜🎜그렇지 않으면 작업이 완료되면 /etc/init.d/mysqld restart
명령을 사용해 볼 수 있습니다. 🎜🎜다시 시작하면 Windows보다 약간 많은 92M을 차지합니다. 🎜🎜🎜🎜🎜Postscript🎜🎜이 방법은 실제로 mysql의 메모리 사용량을 줄일 수 있지만 메모리 대신 성능을 저하시키는 것뿐입니다. 처리량 요구 사항이 상대적으로 높으면 확실히 이런 방식으로 직접 수정할 수 없습니다. 실제 요구 사항에 따라 조정되어야 합니다. 🎜추천 학습: mysql 비디오 튜토리얼
위 내용은 MySQL이 너무 많은 메모리를 차지하는 문제를 해결하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!