随笔分类 - 数据库
摘要:索引是建立得越多越好吗? 到这里有的人可能就有些疑问了。既然创建索引能够提高我们的查询效率,那索引是建立得越多越好吗? 答案是否定的。物极必反,通过前面的学习我们对索引有了一个比较全面的理解。分为下面几个方面来回答。 数据量小的表不需要建立索引,因为建立索引会增加额外的开销。(这就好比我们去读个两页
阅读全文
摘要:关系数据库是由E.F.Codd 博士于1970 年在一-篇名为“一种存储大型共享数据的关系模 型”的论文中提出的。-一个完美的、完全符合数据库技术的关系数据库系统,需要满足Codd 博士提出的十二条法则。 信息法则: 关系型数据库的所有信息都被清楚地表示成表中的数据,即表行中的列值。 授权存储法则:
阅读全文
摘要:首先要知道Hash索引和B+树索引的底层实现原理: hash索引底层就是hash表,进行查询时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据. B+树底层实现原理是多路平衡查找树,对于每一次的查询都是从根节点出发,查询到叶子节点方可以获得所查键值,然后查询判断是否需要回表
阅读全文
摘要:事务的四大特性(ACID): 1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。 2.一致性(consistency):数据库总数从一个一致性的状态
阅读全文
摘要:当B表的数据集小于A表数据集时,用in优于exists。 select id from A where id in (select id from B) 当A表的数据集小于B表的数据集时,用exists优于in。 select id from A where id in(select id from
阅读全文
摘要:#mysql函数的介绍 聚集函数 平均值:avg 计算行数:count 最大值:max 最小值:min 总合:sum 用于处理字符串的函数 合并字符串函数:concat(str1,str2,str3…) 比较字符串大小函数:strcmp(str1,str2) 获取字符串字节数函数:length(st
阅读全文
摘要:在使用数据库查询语句时, 单表的查询有时候不能满足项目的业务需求 在项目开发过程中, 有很多需求都是要涉及到多表的连接查询. 连接查询:也可以叫跨表查询,需要关联多个表进行查询 以下通过两表实例来详细介绍连接的使用方式. 所有操作基本department表和employee表 department表
阅读全文
摘要:#MySQL InnoDB支持三种行锁定方式:InnoDB的默认加锁方式是next-key 锁。 1:行锁(Record Lock):锁直接加在索引记录上面,锁住的是key。 InnoDB 实现了以下两种类型的行锁。 共享锁(S):又称为读锁,简称S锁,共享锁就是多个事务对于同一数据可以共享一把锁,
阅读全文
摘要:#相关配置 MySQL 5.6 以前的版本,只有 MyISAM 存储引擎支持全文索引; MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引; 只有字段的数据类型为 char、varchar、text 及其系列才可以建全文索引; #操作全文索引 创建 create
阅读全文
摘要:阅读博客 http://blog.codinglabs.org/articles/theory-of-mysql-index.html MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 我们知道,数据库查询是
阅读全文
摘要:#truncate和delete区别与联系 delete from `表名` truncate `表名` 都能删除全部数据但不会删除表结构 truncate重新设置自增列,计数器归0 truncate不会影响事务 使用方面 delete 写日志,大量删除记录时比较慢,不是真的从数据库里面删除数据,只
阅读全文
摘要:#数据库设计规范 第一范式:数据库表中的每一列都是不可分割的原子数据项 第二范式:满足第一范式的条件下,所有非主属性都完全依赖于主键 第三范式:满足第一范式和第二范式的条件下,数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系(每张表只描述一个事物) #数据库引擎 MyISAM(早年使
阅读全文