
数据库
文章平均质量分 69
cpf2016
这个作者很懒,什么都没留下…
展开
-
mysql中的if与case-when
(1)if 1.格式IF(expr1,expr2,expr3) 2.作用 如果expr1是true(expr1不等于0且不是null),那么IF的返回值是expr2,否则返回expr3 非常类似于 result1==result2?expr1:expr2转载 2016-01-11 17:48:33 · 559 阅读 · 0 评论 -
mysql中ifnull用法
1.格式IFNULL(expr1,expr2)2.作用 如果expr1为null,那么就返回expr2,;否则返回expr13.实例SELECT IFNULL(o.name,'未命名')FROM prdt_info o 从prdt_info从选出name,如果name为null,就返回未命名转载 2016-01-11 17:20:24 · 663 阅读 · 0 评论 -
mysql中的结果拼接
mysql中的字符串拼接不能使用+,+只能用来做数字相加。 要连接字符串只能使用concat或者concat_ws(1)concat 1.作用 将多个结果作为字符串拼接在一起 2.语法CONCAT(str1,str2...)转载 2016-01-11 17:12:21 · 21722 阅读 · 0 评论 -
数据库索引
(1)索引的概念 索引是一种加快检索表中数据的方法。数据库中的索引类似书籍中的索引,在书籍中,索引允许用户不必翻阅完整本书就能迅速找到所需要的信息。在数据库中,索引也允许数据库程序迅速找到表中数据,而不必扫描整个数据库。 (2)索引的缺点 1.创建索转载 2014-12-13 16:14:07 · 345 阅读 · 0 评论 -
乐观锁
1.使用原因 实际上是为了解决数据库并发访问的情况。 如一个银行账户中余额为1000元,A向其中转账200,B从中取出300,那么应该是剩余900,。 但实际情况下,可能是A转了200,但是还没有提交事务,这个时候B获取余额信息,值是1000,取出300后,修改余额为700,提交事务,然后A又提交事务,这时候账户余额变为1200,显然是不对的。转载 2015-06-21 17:01:43 · 430 阅读 · 0 评论 -
事务隔离级别与乐观锁、悲观锁
1.引入 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这样会产生冲突,就会造成并发性问题。 冲突类型: (1)脏读 指一个事务A正在访问数据,并且对数据进行了修改,但是这种修改还没有提交到数据库,这时另一个事务B也访问这个数据,而A事务产生了异常,发生了回滚,但是B事务使用的还是A修改后的数据,这个就是脏读转载 2015-02-15 16:54:22 · 1272 阅读 · 0 评论 -
悲观锁
1.悲观锁介绍 和他的名字一样,对数据被外界修改(包括本系统的其他事务,以及来自外部系统的事务)持保守态度,也就是说,认为外界很有可能对这个数据同时修改。 所以,需要在数据处理工程中,将数据处于锁定状态,也就是只能单线程处理。2.悲观锁实现 因为要实现单线程访问,所以就只能通过数据库提供的锁来实现了。因为即使在本系统中实现了加锁机制,转载 2015-06-21 18:03:11 · 445 阅读 · 0 评论 -
mysql中的replace into
1.功能说明 replace into的功能和insert into非常相似,只有一点不同: 假如表中有一条旧记录,而新插入的记录中的primary key或者unique索引和旧记录相同,就会先删除旧记录,然后再将新记录插入2.注意 replace的返回值是删除的记录数和插入的记录数之和 也就是说如果返回转载 2015-07-07 22:33:40 · 466 阅读 · 0 评论 -
设置mysql中自增列的初始值和增加步长
1.设置 (1)设置起始值SET auto_increment_offset = n; n就是起始值 (2)设置步长SET auto_increment_increment = m; m就是步长。如假设起始值为1,步长为3,那么插入数据之后的自增列值为1,4,7.....转载 2015-07-07 22:36:38 · 2238 阅读 · 0 评论 -
数据库水平切分实现原理(二)
1.分布式数据方案提供的功能 (1)提供分库规则和路由规则 (2)引入集群概念,保证数据的高可用性 (3)引入负载均衡策略 (4)引入集群节点的可用性探测机制,对单点机器的可用性进行定时的侦测,以保证负载均衡策略的正确实施,以确保系统的高度稳定性 (5)引入读写分离,提高数据的查询速度2.集群与读写分离转载 2015-07-05 20:45:37 · 427 阅读 · 0 评论 -
数据库水平切分实现原理(一)
1.引言 随着互联网应用的普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿pv无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。 通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式: (1)水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失;转载 2015-07-05 13:10:45 · 1697 阅读 · 0 评论 -
位图索引
1.案例 有张表名字为table,由3列组成,分别是姓名、性别和婚姻状况,其中性别只有男和女两项,婚姻状况有已婚、未婚、离婚这3项,该表共100w条记录,现在有这样一个查询:SELECT * FROM table WHERE gender='男' AND marital='未婚' 1)不使用索引转载 2015-01-22 10:08:26 · 559 阅读 · 0 评论 -
B+树
(1)与B-tree区别 1>有n个key的节点中有n个指针,而不是b-tree中的n+1个 2>所有叶子节点中包含了全部的关键字信息,以及指向这些关键字记录的指针,且叶子节点本身的关键字是从大到小顺序连接的 3>所有的非叶子节点实际上就是到达叶子节点的索转载 2015-01-12 13:59:20 · 382 阅读 · 0 评论 -
三大范式
(1)1NF 1. 数据库表的每个字段都符合原子性,不能分割(简单的说就是:每个字段都只能有一个值) 2. 说明:关系型数据库设计出来的表都必然满足1NF 3.例子转载 2014-12-10 21:54:57 · 349 阅读 · 0 评论 -
B树
(1)B树应用 1> 常用作数据库的索引。 2>因为大量数据存储在磁盘中,所以io次数就成为了评价索引结构的优劣。从B-Tree分析,可知检索一次最多要访问树高h-1个节点(因为根节点常驻内存),所以复杂度为O(h)=O(logN),底数m为B-Tree的叉,通常非常大,超过100,所以h非常小,通常不超过转载 2015-01-12 09:51:05 · 380 阅读 · 0 评论 -
SQL中的连接查询
1)连接就是转载 2014-08-13 14:32:47 · 357 阅读 · 0 评论 -
mysql中使用instr替换like
使用内部函数instr,可代替传统的like方式查询,并且速度更快。 instr函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 实例:SELECT o.user_nameFROM sys_user oWHERE INSTR(o.user_name,'主任')>0转载 2016-01-11 17:53:21 · 3026 阅读 · 0 评论