免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: levelhy
打印 上一主题 下一主题

【讨论中】新人才接触MySQL,请教几个问题,求解答,谢谢! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-01-10 17:12 |只看该作者
levelhy 发表于 2013-01-09 14:23
谢谢斑竹的回答,很认真,但是关于第四条,是不是应该是建议使用独立表空间?

不知道是否我理解有误,共 ...



undo  redo都是保存在ibdata1文件中的(默认情况下,仅启用一个ibdata文件)

ibdata1文件是一个大杂烩,在共享表空间下(默认使用),除了上述内容外,还有所有表的索引和数据

binlog是二进制保存的日志,用于MySQL主从复制时使用(详细内容可以学习一下MySQL主从复制)


建议使用独立表空间,因为在共享表空间下,所有delete操作删除的数据所占用ibdata1中的存储空间,都是无法回收的(除非删除ibdata1文件重建),不利于管理和维护,但是在独立表空间下,可以通过optimize table xxx 收回文件中已被删除记录所占用的碎片空间

论坛徽章:
0
12 [报告]
发表于 2013-01-10 17:38 |只看该作者
hbxfsz18 发表于 2013-01-10 17:12
undo  redo都是保存在ibdata1文件中的(默认情况下,仅启用一个ibdata文件)

ibdata1文件是一个大杂 ...


请问一下,你说binlog是二进制保存的日志,意思是说binlog只是日志的一种二进制保存形式,还是说是另一种记录的不同内容的日志呢?

这里的日志是指的mysql的事务日志吧,我现在data目录下有两种日志:一种名字里是relay-bin,一种名字里只有bin,都是二进制的,你说的binlog是哪种呢?

谢谢!

论坛徽章:
0
13 [报告]
发表于 2013-01-10 20:50 |只看该作者
本帖最后由 hbxfsz18 于 2013-01-10 21:36 编辑
levelhy 发表于 2013-01-10 17:38
请问一下,你说binlog是二进制保存的日志,意思是说binlog只是日志的一种二进制保存形式,还是说是另一 ...


这里把MySQL的各种日志都跟你说一下吧。

MySQL的日志种类大概分为:普通日志,错误日志,二进制日志,慢查日志和中继日志

普通日志:记录客户端的连接记录,客户端执行的SQL和系统的各种事件,是最全面的日志    在配置文件中属于[mysqld]节,配置项名称log

错误日志:记录服务器的启动和关闭情况,以及运行中的异常   同样在配置文件中属于[mysqld]节,配置项名称log-error

二进制日志:记录客户端对数据的Update, Delete, Insert以及Drop /Create table等操作记录,文件保存为二进制,一方面是用于数据库恢复时使用,一方面用于做主从复制,同样在配置文件中属于[mysqld]节,配置项名称log-bin

慢查日志:用于记录查询时间超过设定值的查询操作记录,同样在配置文件中属于[mysqld]节,配置项名称log-slow-queries,同时需配置long_query_time用来设定查询超时的时间

中继日志:在主从复制的从服务器中,用于记录从主服务器二进制日志中拷贝的但从服务器尚未处理的数据修改事件,配置项名称relay_log

MySQL默认配置关闭上述所有日志,如果需要打开某个log,只需在配置文件(Unix/Linux:my.cnf,  Windows: my.ini)的[mysqld]节中配置一下即可,例如需要打开错误日志,可以配置为:log-error=/var/log/mysql   

注意:修改配置文件并保存后,需要重启mysql才能生效


论坛徽章:
0
14 [报告]
发表于 2013-01-11 09:42 |只看该作者
hbxfsz18 发表于 2013-01-10 20:50
这里把MySQL的各种日志都跟你说一下吧。

MySQL的日志种类大概分为:普通日志,错误日志,二进制日志 ...


非常感谢,解答得很详细。但是对于my.ini这个文件,我一直有一个疑问,my.ini可以理解为是MySQL的配置信息吧,那通过更新my.ini来修改配置和通过set variables修改不会冲突吗?

因为我的MySQL 5.5装好后就没有my.ini这个文件,但是set variables却可以生效,那这时的参数是修改的什么地方的呢?

另外比如启用一般日志,我可以set global variables general_log=ON,也可以如你提到的在my.ini里添加log,有什么区别呢,一边的修改会不会自动更新另一边呢?

论坛徽章:
0
15 [报告]
发表于 2013-01-11 21:19 |只看该作者
levelhy 发表于 2013-01-11 09:42
非常感谢,解答得很详细。但是对于my.ini这个文件,我一直有一个疑问,my.ini可以理解为是MySQL的配置信 ...


在mySQL中通过SET语句来修改系统参数值,分为两类:一类是Session级别,一类是Global级别

Session级别的修改,仅对当前登录MySQL的Session生效,如果此时新打开另外一个Session,则之前的SET设置对其无效,新的Session仍使用系统默认值

Global级别的修改,对所有的Session生效

但是通过SET语句修改的参数值,在MySQL重启后将失效,重启后的MySQL,所有的系统参数将回到默认值

综上,如果想让一个系统参数修改永久生效,最好是通过修改my.ini或my.cnf并重启MySQL,修改在配置文件中的参数,将总是生效

论坛徽章:
0
16 [报告]
发表于 2013-01-13 10:06 |只看该作者
经典!学习了!

论坛徽章:
0
17 [报告]
发表于 2013-01-17 15:17 |只看该作者
这个帖子很有营养啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP