易截截图软件、单文件、免安装、纯绿色、仅160KB

Mysql的日志类型与设置。


1.普通log
记录所有sql操作,包括select,show语句。
设置
默认是不打开此log。
打开时可以指定目录,不指定时保存在数据库录目录下。
[mysqld]
log = /data/logs/mysql.log   #此方式为指定文件
log = 1                              #此文件默认保存在数据库目录下
log-output = TABLE,FILE      #加上此参数可以同时把日志存储到数据表中,mysql库下。一般为CVS格式 ,当然可选其中一个参数就行
                                            #默认是FILE值
2.错误日志
设置
[mysqld_safe]  #此节点设置了会优先读此节点,[mysqld]着节点会无效,不知道为啥?
log-error=/data/logs/mysqld-err.log     #同样可以指定目录,不指定默认存储在数据库目录下 xxx.err
3.慢查日志
设置 
[mysqld]
log_slow_queries = /data/logs/mysql-slow.log      #不指定默认为 msyql-slow.log
long_query_time = 1                                        #此值默认为10,最小为1,5.1有个google的补丁可以准确的毫秒。
 
log_queries_not_using_indexes = 1                      #没使用索引的查询,存储过程会认为没使用索引而记录下来,默认是0。
4.二进制日志
特别说明: 二进制日志 并不记录select,show等不改变数据的sql语句,它主要功能是用于:数据恢复与数据复制。其带来的性能消耗远不如普通 日志高。默认是不打开的。如果使用事务型数据引擎InnoDB会有自己的二进制日志。特别是服务器使用主从架构时,必需开二进制日志,在机群情况下。
 
设置
[mysql]
log-bin = mysql-binlog        #生成格式为 mysql-binlog.00000X 形式。这里不要写完整目录,写个名字就行,日志会存储在数据库目录下。
 
使用 show variables like '%log%';  命令可以查看当前日志相关设置。
mysql> show variables like 'log%';
+---------------------


相关文档:

mysql中的正则表达式搜索

语法:
select * from table_name where column_name regexp '正则表达式'
或区分大小写
select * from table_name where column_name regexp binary '正则表达式'
支持的正则表达式符号:
.    任意字符
|    或,如:a|b|c
[]   范围,比如:[a-z],[0-9],[^0-9]不包 ......

使用mysql中的with rollup得到group by的汇总信息

使用mysql中的with rollup可以得到每个分组的汇总级别的数据:
表如下:
CREATE TABLE `test3` (
  `id` int(5) unsigned NOT NULL AUTO_INCREMENT,
  `name1` varchar(10) DEFAULT NULL,
  `name2` varchar(10) DEFAULT NULL,
  `cnt` int(2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGI ......

mysql中编码的设置

1.修改mysql的默认编码为gbk:修改my.init文件中的:[client]和[mysqld]下的default-character-set=gbk;
2.查看mysql数据库的编码:show variable like 'character%';或status
3.查看数据库表的编码:show create table 表名;
4.修改数据库的编码:ALTER DATABASE `database_name` DEFAULT CHARACTER SET gbk COLLATE ......

保持简单即最优 Mysql的部署原则

今天读到
When should you store serialized objects in the database?

其中针对
FriendFeed使用Mysql来存储
作为引题,
建议在考虑此方案时一定要三思。为什么?参考这里
Kiss KISS KISS
. 其实
Schema-Less没有错,但不能什么场景都上此方案,要
分析利弊,减少不必要的应用层复杂度。
文中提到的Serializ ......

mysql explain中的using filesort

Using filesort表示在索引之外,需要额外进行外部的排序动作。导致该问题的原因一般和order by有者直接关系,一般可以通过合适的索引来减少或者避免。
explain SELECT * from table_item WHERE user_id = 2 ORDER BY item_id LIMIT 0, 5
user_id 和 item_id 分别建立一个索引,对此语句MySQL选择了 user_id索引,那么 ite ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号