文章分类

类别: 数据库

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

2010年06月09号
32条评论 296次浏览

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

mysql> select concat(’10′);

+————–+

| concat(’10′) |

+————–+ 阅读全文

类别数据库 标签

mysql事务处理和并发锁

2010年04月08号
44条评论 569次浏览

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

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

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

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

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

类别数据库 标签

MySQL行锁深入研究

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

做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设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 ; 阅读全文

类别数据库 标签

mysql InnoDB行锁 的实现例子分析

2010年04月08号
12条评论 438次浏览

InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!

在实际应用中,要特别注意InnoDB行锁的这一特性,不然的话,可能导致大量的锁冲突,从而影响并发性能。下面通过一些实际例子来加以说明。

(1)在不通过索引条件查询的时候,InnoDB确实使用的是表锁,而不是行锁。

在如表20-9所示的例子中,开始tab_no_index表没有索引: 阅读全文

类别数据库 标签

取mysql表和字段注释的语句

2010年03月10号
8条评论 154次浏览

取mysql表和字段注释的语句

取字段注释

SELECT COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = ‘companies’##表名
AND table_schema = ‘testhuicard’##数据库名
AND column_name LIKE ‘c_name’##字段名

SELECT table_name 表名,TABLE_COMMENT 表注释 FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = ‘testhuicard’ ##数据库名

AND table_name LIKE ‘companies’##表名

类别数据库 标签

mysql having介绍

2010年02月20号
6条评论 207次浏览

介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,
例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。

SELECT SUM(population) FROM bbc

这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有
国家的总人口数。
阅读全文

类别数据库 标签

MySql Date函数

2010年02月05号
7条评论 397次浏览

1、获取当前时间

mysql> select current_timestamp();
+———————+
| current_timestamp() |
+———————+
| 2010-01-18 21:24:37 |
+———————+
1 row in set (0.00 sec) 阅读全文

类别数据库 标签

MySQL的optimize的效果太震惊了

2010年01月14号
8条评论 307次浏览

今天写的一个页面,用的AJAX,但是总是感觉很慢,查看了一下消耗的时间,600ms左右,太长了,有明显的延迟感。不能这样发布啊,太慢了,于是找哪块消耗的时间最长,发现后台的一条的SQL语句很慢,大概500多ms,但是看上去那条SQL语句不会消耗太多的时间,于是想着想优化表结构,设置索引,正在想要不要做额外的索引的时候,突然想到尝试一下optimize试试看。结果用来之后,时间只有40多ms了,一下子就没有那种延迟感了,效果很明显。 阅读全文

类别数据库 标签