手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

MySQL Innodb独立表空间的配置

[日期:2013-06-10] 来源:Linux社区  作者:soanl [字体: ]

没经验真可怕

项目是去年9月份开始运行的,现在数据库中的那些统计表非常庞大,并且时不时领导要你在这些统计表中加个字段什么的,哇,那真是头疼,虽然每个月项目升级我们都会删数据,可一个月那些统计表的数据也达到千万啊,蛋疼!周五项目升级,就卡在这些大数据上面去了,因为要加那些字段,到后面实在是慢的可以,干脆全部数据干掉,不管了!

将数据库配置成独立表空间:

1.查看一下:

MySQL> show variables like '%per_table%'; 
+-----------------------+-------+ 
| Variable_name        | Value | 
+-----------------------+-------+ 
| innodb_file_per_table | OFF  | 
+-----------------------+-------+ 
1 row in set (0.00 sec) 

说明:OFF代表mysql是共享表空间,也就是所有库的数据都存放在一个ibdate1文件中

rpm安装mysql的目录结构

数据库目录:/var/lib/mysql/

配置文件:/usr/share/mysql(mysql.server命令及配置文件)

相关命令:/usr/bin(mysqladmin、mysqldump等命令)(*mysql的一种安全启动方式:/usr/bin/mysqld_safe  --user=root &)

启动脚本:/etc/rc.d/init.d/

2.停掉mysql服务器:

以rpm方式安装的mysql
[root@localhost ~]# /etc/rc.d/init.d/mysqld stop
[root@localhost ~]#/etc/init.d/mysqld stop

3.修改my.cnf文件:在my.cnf文件mysqld后面加上下面这句话:

因为是rpm安装,所以找不到,从mysql配置文件目录中随便复制个my-*.cnf文件到etc目录下,改成my.cnf

innodb-file-per-table=1

4.启动mysql

[root@localhost ~]#service mysql start

[root@localhost ~]#/etc/init.d/mysqld start

5.再查看一下

mysql> show variables like '%per_table%'; 
+-----------------------+-------+ 
| Variable_name        | Value | 
+-----------------------+-------+ 
| innodb_file_per_table | ON  | 
+-----------------------+-------+ 
1 row in set (0.00 sec) 

总结: mysql innodb的独立表空间和共享表空间,独立表空间是把每个表的数据和表文件放在一起。共享表空间是所有库的数据都放在ibdate1文件中,网上说这个文件你删除数据,不会收缩,也就是说如果你这个文件有40G,你删了表数据,这个文件还是40G,这就很恐怖了,所以我们换成独立表空间。还有就是虽然说独立,但个人觉得还真不是很彻底,我把那些文件复制到另一个库里面,只有表,没有数据,所以不彻底啊!

linux
相关资讯       MySQL InnoDB  MySQL表空间  MySQL Innodb配置 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款