[MySQL优化]为MySQL数据文件ibdata1瘦身
系统环境 发现问题 解决问题 1. 系统环境 Linux Ubuntu 13.04 64bit server ~ uname -aLinux d2 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux~ cat /etc/issueUbuntu 13.04 \n \l MySQL: 5.5.31-0ubuntu0.
- 系统环境
- 发现问题
- 解决问题
1. 系统环境
Linux Ubuntu 13.04 64bit server
<code>~ uname -a Linux d2 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux ~ cat /etc/issue Ubuntu 13.04 \n \l </code>
MySQL: 5.5.31-0ubuntu0.13.04.1
<code>~ mysql --version mysql Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (x86_64) using readline 6.2 </code>
硬盘:36G+4G+4G+36G
<code>~ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/server3--vg-root 36G 31G 3.2G 91% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 4.1G 1.1G 3.0G 26% /dev tmpfs 824M 280K 823M 1% /run none 5.0M 0 5.0M 0% /run/lock none 4.1G 3.4G 729M 83% /run/shm none 100M 0 100M 0% /run/user /dev/vda1 228M 30M 187M 14% /boot 192.168.1.10:/home/amg/data 36G 13G 21G 39% /home/amg/data </code>
MySQL的ibdata1占用空间:20G
<code>~ cd /var/lib/mysql ~ ls -l drwxr-xr-x 2 mysql mysql 4096 Aug 2 19:38 CB drwxr-xr-x 2 mysql mysql 4096 Jun 24 23:08 conan drwxr-xr-x 2 mysql mysql 4096 Jun 2 00:52 dbwordpress -rwxr-xr-x 1 root root 0 May 23 00:48 debian-5.5.flag -rwxr-xr-x 1 mysql mysql 20101201920 Aug 2 20:08 ibdata1 -rwxr-xr-x 1 mysql mysql 5242880 Aug 2 20:08 ib_logfile0 -rwxr-xr-x 1 mysql mysql 5242880 Aug 2 19:38 ib_logfile1 drwxr-xr-x 2 mysql mysql 4096 Jun 26 09:03 Macro drwxr-xr-x 2 mysql root 4096 May 23 00:48 mysql -rwxr-xr-x 1 root root 6 May 23 00:48 mysql_upgrade_info drwxr-xr-x 2 mysql mysql 4096 May 23 00:48 performance_schema drwxr-xr-x 2 mysql mysql 4096 May 23 00:53 phpmyadmin drwxr-xr-x 2 mysql root 4096 May 23 00:48 test drwxr-xr-x 2 mysql mysql 4096 Jul 22 14:09 TF drwxr-xr-x 2 mysql mysql 4096 Jun 2 01:04 wordpress </code>
业务数据表
<code>mysql> show tables; +-----------------+ | Tables_in_CB | +-----------------+ | NSpremium | | cb_hft | | cb_hft_20130801 | | cb_hft_20130802 | +-----------------+ 4 rows in set (0.00 sec) </code>
2. 发现问题
ibdata1单个文件占用20G大小。
1. MySQL默认设置,没有按表空间分离数据,所有的表的数据都被放到ibdata1文件中。
2. 业务操作,每天会产生一张表cb_hft,晚上的时候对表进行重命名。
<code>RENAME TABLE cb_hft TO cb_hft_20130801; create table cb_hft like cb_hft_20130801; </code>
3. 每周会把数据导出,同时drop表。但drop后,ibdata1不会减少,随着数据的积累ibdata1越来越大,根空间已经不够用了。
3. 解决问题
1). 导出数据
现在数据库中,有两个数据表,cb_hft_20130801,cb_hft_20130802,分别导出到/run/shm, /dev
<code>~ cd /dev ~ mysqldump -uroot -p CB cb_hft_20130802 > export_cb_hft_20130802.sql ~ cd /run/shm ~ mysqldump -uroot -p CB cb_hft_20130801 > export_cb_hft_20130801.sql ~ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/server3--vg-root 36G 31G 3.2G 91% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 4.1G 3.7G 368M 92% /dev tmpfs 824M 280K 823M 1% /run none 5.0M 0 5.0M 0% /run/lock none 4.1G 3.4G 729M 83% /run/shm none 100M 0 100M 0% /run/user /dev/vda1 228M 30M 187M 14% /boot 192.168.1.10:/home/amg/data 36G 13G 21G 39% /home/amg/data </code>
两张表分别占了,3.4G,3.7G。
登陆mysql删除CB数据库
<code>~ mysql -uroot -p ~ drop database CB </code>
导出其他数据库数据
<code>~ cd /run/shm ~ mysqldump -uroot -p -R -q --all-databases > others.sql </code>
2). 修改配置文件/etc/mysql/my.cnf
对每张表使用单独的数据文件存储innodb_file_per_table
停止mysql服务器
<code>~ sudo /etc/init.d/mysql stop #清空所有数据文件 ~ sudo rm -rf /var/lib/mysql/* </code>
修改配置文件
<code>~ sudo vi /etc/mysql/my.cnf [mysqld] innodb_file_per_table </code>
重新构建数据库实例
<code>~ /usr/bin/mysql_install_db ~ ls /var/lib/mysql mysql performance_schema test #启动MySQL ~ sudo /etc/init.d/mysql start </code>
3). 恢复其他数据库
<code>~ mysql show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Macro | | TF | | conan | | dbwordpress | | mysql | | performance_schema | | phpmyadmin | | test | | wordpress | +--------------------+ 10 rows in set (0.01 sec) #查看ibdata1大小 ~ ls -l /var/lib/mysql drwx------ 2 mysql mysql 4096 Aug 2 21:33 CB drwx------ 2 mysql mysql 4096 Aug 2 21:23 conan drwx------ 2 mysql mysql 4096 Aug 2 21:23 dbwordpress -rw-rw---- 1 mysql mysql 18874368 Aug 2 21:34 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Aug 2 21:34 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Aug 2 21:34 ib_logfile1 drwx------ 2 mysql mysql 4096 Aug 2 21:23 Macro drwx------ 2 mysql root 4096 Aug 2 21:23 mysql drwx------ 2 mysql mysql 4096 Aug 2 21:19 performance_schema drwx------ 2 mysql mysql 4096 Aug 2 21:23 phpmyadmin drwx------ 2 mysql root 4096 Aug 2 21:19 test drwx------ 2 mysql mysql 4096 Aug 2 21:23 TF drwx------ 2 mysql mysql 4096 Aug 2 21:23 wordpress </code>
4). 重置root密码
<code>mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); mysql> FLUSH PRIVILEGES; </code>
5). 恢复CB数据库
<code>mysql> create database CB; Query OK, 1 row affected (0.00 sec) ~ mysql --database CB </code>
刚才设置的innodb_file_per_table参数已经起作用了,当我们再导出表drop后,对应的数据文件idb就会被删除,系统硬盘空间使用就会在正常值范围内。
查看表数据
<code>mysql> show tables; +-----------------+ | Tables_in_CB | +-----------------+ | cb_hft_20130801 | | cb_hft_20130802 | +-----------------+ 2 rows in set (0.00 sec) mysql> select count(1) from cb_hft_20130801; +----------+ | count(1) | +----------+ | 21063172 | +----------+ 1 row in set (1 min 1.46 sec) #删除表 ~ drop table cb_hft_20130801; #查看数据文件 ~ ls -l /var/lib/mysql/CB -rw-rw---- 1 mysql mysql 9928 Aug 2 22:09 cb_hft_20130802.frm -rw-rw---- 1 mysql mysql 7805599744 Aug 2 22:38 cb_hft_20130802.ibd -rw-rw---- 1 mysql mysql 61 Aug 2 21:30 db.opt -rw-rw---- 1 mysql mysql 9274 Aug 2 22:52 NSpremium.frm -rw-rw---- 1 mysql mysql 98304 Aug 2 22:53 NSpremium.ibd </code>
drop后,数据就一起被删除了。
经过对MySQL的调优,ibdata1已经被瘦身!数据库又可以继续正常的稳定的工作了。
http://blog.fens.me/mysql-ibdata1/

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











선형 복잡성에서 로그 복잡성까지 조회 시간을 줄이는 인덱스를 구축하여 MySQL 쿼리 성능을 최적화할 수 있습니다. SQL 삽입을 방지하고 쿼리 성능을 향상하려면 PREPAREDStatements를 사용하세요. 쿼리 결과를 제한하고 서버에서 처리되는 데이터의 양을 줄입니다. 적절한 조인 유형 사용, 인덱스 생성, 하위 쿼리 사용 고려 등 조인 쿼리를 최적화합니다. 쿼리를 분석하여 병목 현상을 식별하고, 캐싱을 사용하여 데이터베이스 로드를 줄이고, 오버헤드를 최소화합니다.

PHP에서 MySQL 데이터베이스를 백업하고 복원하는 작업은 다음 단계에 따라 수행할 수 있습니다. 데이터베이스 백업: mysqldump 명령을 사용하여 데이터베이스를 SQL 파일로 덤프합니다. 데이터베이스 복원: mysql 명령을 사용하여 SQL 파일에서 데이터베이스를 복원합니다.

MySQL 테이블에 데이터를 삽입하는 방법은 무엇입니까? 데이터베이스에 연결: mysqli를 사용하여 데이터베이스에 대한 연결을 설정합니다. SQL 쿼리 준비: 삽입할 열과 값을 지정하는 INSERT 문을 작성합니다. 쿼리 실행: query() 메서드를 사용하여 삽입 쿼리를 실행하면 확인 메시지가 출력됩니다.

MySQL 8.4(2024년 최신 LTS 릴리스)에 도입된 주요 변경 사항 중 하나는 "MySQL 기본 비밀번호" 플러그인이 더 이상 기본적으로 활성화되지 않는다는 것입니다. 또한 MySQL 9.0에서는 이 플러그인을 완전히 제거합니다. 이 변경 사항은 PHP 및 기타 앱에 영향을 미칩니다.

PHP에서 MySQL 저장 프로시저를 사용하려면: PDO 또는 MySQLi 확장을 사용하여 MySQL 데이터베이스에 연결합니다. 저장 프로시저를 호출하는 문을 준비합니다. 저장 프로시저를 실행합니다. 결과 집합을 처리합니다(저장 프로시저가 결과를 반환하는 경우). 데이터베이스 연결을 닫습니다.

PHP를 사용하여 MySQL 테이블을 생성하려면 다음 단계가 필요합니다. 데이터베이스에 연결합니다. 데이터베이스가 없으면 작성하십시오. 데이터베이스를 선택합니다. 테이블을 생성합니다. 쿼리를 실행합니다. 연결을 닫습니다.

70B 모델에서는 1000개의 토큰을 몇 초 만에 생성할 수 있으며 이는 거의 4000자로 변환됩니다! 연구진은 Llama3를 미세 조정하고 가속 알고리즘을 도입하여 기본 버전과 비교하여 속도가 13배 빨라졌습니다. 속도가 빠를 뿐만 아니라 코드 재작성 작업 성능도 GPT-4o를 능가합니다. 이 성과는 인기 있는 AI 프로그래밍 아티팩트인 Cursor를 개발한 팀과 OpenAI도 투자에 참여한 anysphere에서 이루어졌습니다. 빠른 추론 가속 프레임워크로 잘 알려진 Groq에서는 70BLlama3의 추론 속도가 초당 300개 토큰이 조금 넘는다는 사실을 아셔야 합니다. Cursor의 속도 덕분에 거의 즉각적인 완전한 코드 파일 편집이 가능하다고 할 수 있습니다. 어떤 사람들은 좋은 사람이라고 커스를 넣으면

지난주 내부 사퇴와 외부 비판의 물결 속에서 OpenAI는 대내외적 난관에 봉착했다. - 미망인 여동생의 침해로 글로벌 열띤 논의가 촉발됐다. - '대군주 조항'에 서명한 직원들이 잇달아 폭로됐다. - 네티즌들은 울트라맨의 '' 일곱 가지 대죄" ” 소문 파기: Vox가 입수한 유출된 정보와 문서에 따르면 Altman을 포함한 OpenAI의 고위 경영진은 이러한 지분 회수 조항을 잘 알고 있었고 이에 서명했습니다. 또한 OpenAI가 직면한 심각하고 시급한 문제인 AI 보안이 있습니다. 최근 가장 눈에 띄는 직원 2명을 포함해 보안 관련 직원 5명이 퇴사하고, '슈퍼얼라인먼트' 팀이 해체되면서 OpenAI의 보안 문제가 다시 한 번 주목을 받고 있다. 포춘지는 OpenA가
