数据库
文章平均质量分 67
小笨鸟赶快飞呀
每天进步一点点
展开
-
数据库面试
1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 超 键: 在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键: 是最小超键,即没有冗余原创 2016-05-16 23:22:56 · 296 阅读 · 0 评论 -
缓存设计的一些思考
互联网架构中缓存无处不在,某厂牛人曾经说过:”缓存就像清凉油,哪里不舒服,抹一下就好了”。高品质的存储容量小,价格高;低品质存储容量大,价格低,缓存的目的就在于”扩充”高品质存储的容量。本文探讨缓存相关的一些问题。 LRU替换算法 缓存的技术点包括内存管理和替换算法。LRU是使用最多的替换算法,每次淘汰最久没有使用的元素。LRU缓存实现分为两个部分:Hash表和LRU链表,Hash表用转载 2016-06-08 14:44:41 · 224 阅读 · 0 评论 -
事务及其ACID性质
数据库事务概念 什么是数据库事务? 事务(transaction)是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。 数据库事务的四个基本性质(ACID) 1. 原子性(Atomicity) 事务的原子性是指事务中包含的所有操作要么全做,要么全不做(all or none)。 2. 一致性(Consistency) 在原创 2016-06-08 14:24:09 · 465 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。 文章主要内容分为三个部分转载 2016-05-20 09:51:58 · 214 阅读 · 0 评论 -
数据库进阶系列之二:细说数据库范式
理论性的东西,往往容易把人人都看得懂的东西写成连鬼都看不懂,近似于主任医生开的药方。从前学范式的时候,把书中得概念翻来覆去看,看得痛心疾首深恶痛绝,再加上老师深切误导,最后一塌糊涂。借助网络资源,自己写了一篇,自己是看懂了,希望对大家也有所帮助,有错误帮忙指正。 数据库范式(Normal forms):是用于规范关系型数据库设计,以减少谬误发生的一种准则。 1NF(first no转载 2016-05-17 22:02:58 · 777 阅读 · 0 评论 -
数据库进阶系列之一:漫谈数据库索引
一、引言 对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree 我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是转载 2016-05-17 22:02:11 · 212 阅读 · 0 评论 -
键约束和唯一性约束的区别
1.主键约束(PRIMARY KEY) 1) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 2) 是不可能(或很难)更新. 3) 主键列上没有任何两行具有相同值(即重复值),不允许空(NULL). 4) 主健可作外健,唯一索引不可; 2.唯一性约束(UNIQUE) 1) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表转载 2016-05-17 21:55:12 · 1208 阅读 · 0 评论 -
系统优化
系统优化: 1.服务拆分 2.接口隔离 3、DB优化 1)索引优化 2)sql语句优化 3)缓存优化:memecached缓存 4)读写数据库分开 5)旧数据移除备份 4、缓存 5、业务优化 6、监视 7、主从库原创 2016-05-17 19:53:28 · 232 阅读 · 0 评论 -
SQL性能优化
1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用。 解决办法: 其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下: a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商转载 2016-05-17 20:17:57 · 186 阅读 · 0 评论 -
漫谈数据库索引
一、引言 对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree 我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是B+T转载 2016-05-17 20:17:11 · 173 阅读 · 0 评论 -
SQL慢查询优化
排队B端慢查询问题排查 表现: 3月19日,3月20日的18:00-20:00之间,DB服务器的CPU load飙升 DBA提出问题原因是sql update ykct.tb_queue_apply set state=? where rest_id=? and state=? and id and valid=? and apply_time>? 扫描行数太多,执行时间过长 业原创 2016-05-17 19:55:10 · 368 阅读 · 0 评论 -
MySQL数据库中缓存管理的思路解析
在数据库中,用户可能多次执行相同的查询语句。为了提高查询效率,数据库会在内存在划分一个专门的区域,用来存放用户最近执行的查询,这块区域就是缓存。因为内存的运行速度要比硬盘快的多。为此通过缓存机制,就可以提高查询的效率。当用户下一次再执行相同查询时,就可以直接从缓存中获取数据,而不用到硬盘中的数据文件中去读取数据,也可以省去相关解析的工作。 一、数据缓存的应用环境 并不是在任何情转载 2016-05-17 20:00:48 · 223 阅读 · 0 评论 -
内连接、左外连接、右外连接、交叉连接区别
http://blog.csdn.net/cnham/archive/2008/06/25/2584936.aspx 在之前,我对MSSQL中的内连接和外连接所得出的数据集不是很清楚。这几天重新温习了一下SQL的书本,现在的思路应该是很清楚了,现在把自己的理解发出来给大家温习下。希望和我一样对SQL的连接语句不太理解的朋友能够有所帮助。(发这么菜的教程,各位大大们别笑话偶了,呵:D ) 有两个原创 2016-05-17 19:34:56 · 264 阅读 · 0 评论 -
mysql数据库中的索引
一、什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少原创 2016-05-17 19:31:06 · 199 阅读 · 0 评论 -
《高性能MySQL》
基本概念和性能剖析schema和数据类型优化索引查询性能优化 基本概念和性能剖析 1、设置隔离级别 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED 2、显示表的相关信息 SHOW原创 2016-05-17 13:04:57 · 1374 阅读 · 0 评论 -
MySQL数据类型
1.整型(xxxint) 2.浮点型(float和double) 3.定点数(decimal) 4.字符串(char,varchar,xxxtext) 5.二进制数据(xxxBlob) 6.日期时间类型(date,time,datetime,timestamp) 数据类型的属性 1.整型(xxxint) MySQL数据类型 含义 tinyint(m) 1个字节表示(-128~原创 2016-05-17 09:38:29 · 288 阅读 · 0 评论 -
MySQL基础操作汇总
一、基本操作二、表和字段的操作三、操作数据四、操作符(前面都可以加上NOT进行求反)五、函数 5.1 汇总函数5.2 字符函数5.3 算数函数 六、子/组合查询(例子)七、索引八、创建视图九、备注 一、基本操作 创建数据库 create database learnsql 登陆本地MySQL My原创 2016-05-17 09:37:53 · 236 阅读 · 0 评论