文章分类

类别: 数据库

Mysql中count(*),DISTINCT的使用方法和效率研究

2011年01月20号
没有评论 2,222次浏览

在处理一个大数据量数据库的时候
突然发现mysql对于count(*)的不同处理会造成不同的结果

比如执行
SELECT count(*) FROM tablename
即使对于千万级别的数据mysql也能非常迅速的返回结果
而对于
SELECT count(*) FROM tablename WHERE…..
mysql的查询时间开始攀升 阅读全文

类别数据库 标签

mysql关于uuid()

2010年11月12号
31条评论 1,587次浏览

大概使用MySQL的人,百分之九九以上的人会使用Autoincrement ID做主键,这是可以理解的,因为MySQL的自增ID效率很高,使用也很方便。那么剩下的百分之一的人使用什么做主键呢?可能是自己做的 KeyGenerator,也可能是我们下面要说的UUID。

据说在Oracle的圈子里,如果谁用自增ID做主键是要被鄙视的,主键最自然的选择就是UUID。我不了解Oracle,这些道听途说的结论是否 正确不做承诺。

阅读全文

类别数据库 标签

mysql字段类型 唯一索引 记录不重复设置

2010年11月12号
3条评论 1,078次浏览

唯一索引 记录不重复设置

用phpmyadmin查看你的数据库,设置为主键、选择唯一索引,是否允许重复与数据类型无关。

关键字UNIQUE把它定义为一个唯一索引.唯一性索引 和“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。

阅读全文

类别数据库 标签

删除庞大的MySQL binlog实际操作

2010年10月21号
19条评论 839次浏览

以下的文章主要描述的是清理删除庞大的MySQL binlog的实际操作方案,我们是在MySQL master/slave架构的环境下对清理删除庞大的MySQL binlog进行操作,以下就是文章的具体内容描述。
问题:主库硬盘不足s
原因:MySQL的var下大量bin二进制log,200多个g啊
目标:安全删除MySQL binlog
方法:网上搜搜关键词“MySQL bin文件 删除”,还真有~~
相关语句: 阅读全文

类别数据库 标签

mysql清理binlog

2010年10月21号
1条评论 442次浏览

做了mysql主从也有一段时间了,这两天检查磁盘空间情况,发现放数据库的分区磁盘激增了40多G,一路查看下来,发现配置好主从复制以来到现在的binlog就有40多G,原来根源出在这里,查看了一下my.cnf,看到binlog的size是1G就做分割,但没有看到删除的配置,在mysql里show了一下variables,

mysql> show variables like ‘%log%’;
查到了
| expire_logs_days                | 0                                     |

这个默认是0,也就是logs不过期,这个是一个global的参数,所以需要执行

set global expire_logs_days=8;
类别数据库 标签

MySQL函数concat()和concat_ws()区别及几个实用字符串函数

2010年06月09号
34条评论 1,173次浏览

1、Concat()函数1.1 MySQL的concat函数可以连接一个或者多个字符串,如

mysql> select concat(’10′);

+————–+

| concat(’10′) |

+————–+ 阅读全文

类别数据库 标签

mysql事务处理和并发锁

2010年04月08号
44条评论 1,501次浏览

这段时间因为工作关系,研究到库存系统的开发问题,从这里出发我们考虑了一些有关库存信息中需要的操作和,可能遇到的事务处理问题。特别是关于数据表锁定问题,一旦出现并发现象的时候,我们如何保证数据的完整性,值得我们考虑。事务操作,要保证的三个原则性:

原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全部执行,要么全都不执行;

一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态;

隔离性(Isolation):数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行;

持久性(Durable):事务完成之后,它对于数据的修改是永久性的,即使出现系统故障也能够保持。 阅读全文

类别数据库 标签

MySQL行锁深入研究

2010年04月08号
1条评论 540次浏览

做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为
Select   restnum  from  book  where  id =1 ;      
– 如果 restnum 大于 0 ,执行 update  
Update   book  set restnum=restnum-1 where id=1 ;  
Select   restnum  from  book  where  id =1 ;   
– 如果 restnum 大于 0 ,执行 update
Update   book  set restnum=restnum-1 where id=1 ; 阅读全文

类别数据库 标签