
数据库
阿肯那顿
这个作者很懒,什么都没留下…
展开
-
MySQL索引背后的数据结构及算法原理
前两天经历了武汉一行腾讯面试,数据库索引是一个面试热点,在此搜集相关资料,以备学习之用。 下面是一位牛人写得关于数据库索引的精品之作,因为很好,不敢修饰,转载至此与博友共享。 原文链接:MySQL索引背后的数据结构及算法原理本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MyS...转载 2018-02-28 10:17:55 · 166 阅读 · 0 评论 -
Mysql的日期存储字段类型的选择
在实际开发项目中发现数据库中得日期项目,有的用datetime,有的用timestamp,有的甚至用int,这之间都有什么区别呢?什么场合适用什么样的设置呢?首先看一下各自的特点:int4个字节存储,INT的长度是4个字节,存储空间上比datatime少,int索引存储空间也相对较小,排序和查询效率相对较高一点点可读性极差,无法直观的看到数据,可能让你很恼火datetime8...原创 2018-02-28 13:22:42 · 5876 阅读 · 0 评论 -
轻松理解MYSQL MVCC 实现机制
MVCC简介什么是MVCCMVCC是一种多版本并发控制机制。MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用。大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁,使用MVCC,能降低其系统开销....转载 2018-02-28 13:39:56 · 220 阅读 · 0 评论 -
Redis 应用场景及应用实例
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。MySQL+Memcached架构的问题实际mysql是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数...转载 2018-03-09 13:00:11 · 542 阅读 · 0 评论 -
Mysql并发时经典常见的死锁原因及解决方法
mysql都有什么锁MySQL有三种锁的级别:页级、表级、行级。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般算法: next KeyLocks锁,同时锁住记录(...转载 2018-03-04 12:10:50 · 1138 阅读 · 0 评论 -
MySql之INSERT INTO…ON DUPLICATE KEY UPDATE详解
在我们的日常开发中,经常会遇到过这样的情景:查看某条记录是否存在,不存在的话创建一条新记录,存在的话更新某些字段。 你会采用怎么样的处理方式呢?$result = mysql_query('select * from xxx where id = 1');$row = mysql_fetch_assoc($result);if($row){ mysql_query('upda...转载 2018-03-04 12:13:35 · 985 阅读 · 0 评论 -
Oracle与MySQl对比
并发性并发性是oltp数据库最重要的特性,但并发涉及到资源的获取、共享与锁定。mysql:以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表中的数据。 虽然InnoDB引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者sql语句没有使用索引,那么仍然使用表级锁。oracle:使用行级锁,对资源锁...转载 2018-03-04 12:34:50 · 965 阅读 · 0 评论