代码改变世界

随笔分类 -  Database

Hibernate与数据库锁

2012-08-11 22:40 by java线程例子, 868 阅读, 收藏,
摘要: 一、为什么要使用锁?要想弄清楚锁机制存在的原因,首先要了解事务的概念。事务是对数据库一系列相关的操作,它必须具备ACID特征:A(原子性):要么全部成功,要么全部撤销。C(一致性):要保持数据库的一致性。I(隔离性):不同事务操作相同数据时,要有各自的数据空间。D(持久性):一旦事务成功结束,它对数据库所做的更新必须永久保持。我们常用的关系型数据库RDBMS实现了事务的这些特性。其中,原子性、一致性和持久性都是采用日志来保证的。而隔离性就是由今天我们关注的锁机制来实现的,这就是为什么我们需要锁机制。如果没有锁,对隔离性不加控制,可能会造成哪些后果呢?1.更新丢失:事务1提交的数据被事务2覆盖。 阅读全文

MySQL加密和解密

2012-07-12 09:53 by java线程例子, 516 阅读, 收藏,
摘要: MySQL数据库加密与解密:数据加密、解密在安全领域非常重要。对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大。有多种前端加密算法可用于数据加密、解密,下面我向您推荐一种简单的数据库级别的数据加密、解密解决方案。以MySQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT() )和解密函数(AES_DECRYPT())。在建表的时候,要注意字段的类型.如下图所示:在表中插入加密数据上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它(请牢记!)。下面是表中的数据截图:上 阅读全文

MySQL性能优化的最佳20+条经验

2012-01-05 21:45 by java线程例子, 3456 阅读, 收藏,
摘要: 转载自酷壳:http://coolshell.cn/articles/1846.html今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询缓存优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引 阅读全文