数据库
maikelsong
这个作者很懒,什么都没留下…
展开
-
MySQL索引背后的数据结构及算法原理--转
MySQL索引背后的数据结构及算法原理作者 张洋 | 发布于 2011-10-18MySQL 索引 B树 优化原文地址:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对转载 2015-11-04 18:24:54 · 301 阅读 · 0 评论 -
事务四大特征:原子性,一致性,隔离性和持久性(ACID)
Transaction 也就是所谓的事务了,通俗理解就是一件事情。从小,父母就教育我们,做事情要有始有终,不能半途而废。 事务也是这样,不能做一半就不做了,要么做完,要么就不做。也就是说,事务必须是一个不可分割的整体,就像我们在化学课里学到的原子,原子是构成物质的最小单位。于是,人们就归纳出事务的第一个特性:原子性(Atomicity)。我靠,一点都不神秘嘛。特别是在数据库领域,事务是一个非常重要...转载 2018-07-13 12:04:18 · 143 阅读 · 0 评论 -
为什么MySQL数据库索引选择使用B+树?
在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出B树以及为什么MySQL数据库索引选择使用B+树!学过数据结构的一般对最基础的树都有所认识,因此我们就从与我们主题更为相近的二叉查找树开始。一、二叉查找树(1)二叉树简介:二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空...转载 2018-07-12 10:03:02 · 105 阅读 · 0 评论 -
为什么你创建的数据库索引没有生效,索引失效的条件!
几乎所有的小伙伴都可以随口说几句关于创建索引的优缺点,也知道什么时候创建索引能够提高我们的查询性能,什么时候索引会更新,但是你有没有注意到,即使你设置了索引,有些时候索引他是不会生效的!这不仅考察了大家对索引的了解程度,还要让大家在使用的时候能够正确的使用。以下介绍了一些可能会造成索引失效的特殊情况,希望大家在平时开发和面试的时候能够注意到!一、如何判断数据库索引是否生效首先在接着探讨之前,我们先...转载 2018-07-11 16:44:48 · 1849 阅读 · 0 评论 -
MySQL中int(M)和tinyint(M)数值类型中M值的意义
在一开始接触MySQL数据库时,对于int(M)及tinyint(M)两者数值类型后面的M值理解是最多能够插入数据库中的值不能大于M;后来工作后,也是一边学习一边使用,之后的理解是其中的M的意思是插入数据库中的值的字符长度不能大于M,例如,int(4),想要插入1234,1234的字符长度是4,就正好可以插入数据库,12341就不行,因为是5个字符长度,这也都是道听途说,自己从来没有验证过;如今,...转载 2018-07-03 11:21:35 · 230 阅读 · 0 评论 -
Oracle重置序列(不删除重建方式)
Oracle 中的序列我们一般用来生成流水号,所以需要进行重置(如每天凌晨重置一次),我们虽然可以通过重新编译的方式重置序列,可是这种方法会有弊端,比如导致与该序列相关的存储过程或函数失效等等,需要重新编译;于是就需要一种不编译也可以重置序列的方法—— 这种方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的这个值(反过来走),然后再改回来。 假设需要修改的序...转载 2018-04-25 18:15:55 · 420 阅读 · 0 评论 -
索引长度与区分度
1:查询频繁 2:区分度高 3:长度小 4: 尽量能覆盖常用查询字段.1: 索引长度直接影响索引文件的大小,影响增删改的速度,并间接影响查询速度(占用内存多).针对列中的值,从左往右截取部分,来建索引1: 截的越短, 重复度越高,区分度越小, 索引效果越不好2: 截的越长, 重复度越低,区分度越高, 索引效果越好,但带来的影响也越大--增删改变慢,并间影响查转载 2017-02-16 10:27:22 · 911 阅读 · 0 评论 -
mysql建索引原则
1.选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。2.为经常需要排序、分组和联合操作的字段建立索引经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多转载 2017-02-21 10:04:57 · 302 阅读 · 0 评论 -
B+/-Tree原理及mysql的索引分析
B+/-Tree原理B-Tree介绍B-Tree是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)转载 2017-01-22 11:19:55 · 260 阅读 · 0 评论 -
mysql+tps+一般为多少
mysql+tps+一般为多少 相关文章1、前言对于数据库而言,在日常开发中我们主要的关注点有两块,一个是schema的结构设计,另一个就是索引的优化,这两块是影响我们最终系统结构和性能的关键部分,自然也是我们花费精力最多的部分;本文主要介绍数据库设计中的一般原则和优化手段,包括数据库的一半范式、反范式设计、数据切分、数据路由与合并等等2、Schema设计的转载 2017-01-13 14:43:07 · 20375 阅读 · 2 评论 -
Oracle同义词创建及其作用
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系。本文介绍如何创建同义词语句,删除同义词以及查看同义词语句。 oracle的同义词总结: 从字面上理解就是别名的意思,和试图的功能类似。就是一种映射关系。 1.创建同义词语句: create public synonym table_name for user.tabl转载 2016-12-23 10:54:08 · 269 阅读 · 0 评论 -
Oracle查询用户权限
--查看用户和默认表空间的关系select username,default_tablespace from dba_users;--查看当前用户能访问的表select * from user_tables; --Oracle查询用户表select * from user_all_tables;--Oracle查询转载 2016-12-13 14:34:47 · 367 阅读 · 0 评论 -
事务的四种隔离级别
Innodb引擎室mysql server中支持事务的存储引擎之一,自然也是支持四种事务隔离级别的read uncommitted,read commit,repeatable readserializable,下面就分别最四种隔离级别在实现的锁机制做一个简介:serializable:1:这种隔离级别对数据的要求最为严格,自然也是性能最转载 2016-07-20 11:55:48 · 312 阅读 · 0 评论 -
一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人转载 2016-07-20 11:49:46 · 1088 阅读 · 0 评论 -
B-Tree, B+Tree, B*树介绍
【摘要】 最近在看Mysql的存储引擎中索引的优化,神马是索引,支持啥索引.全是浮云,目前Mysql的MyISAM和InnoDB都支持B-Tree索引,InnoDB还支持B+Tree索引,Memory还支持Hash.今天从最基础的学起,学习了解BTree,B-Tree和B+Tree。【主题】B-Tree 介绍B-Tree 特性搜索插入等B+Tree 介绍B*Tre转载 2016-07-06 14:14:46 · 254 阅读 · 0 评论 -
MySQL页以及每秒读写量评估的疑问
老师在视频中讲“由于MySQL数据读写操作按照页来处理,页大小为16KB,假设每次操作的页都不相同。那么每秒写操作数据量为:16KB*2000/s = 32M/s,每秒读操作数据量为:16KB*8000/s = 128M/s”是取了个平均值吗?"这个select/insert/update/delete可能都会读取多个页,这个还要分内存命中跟没有命中的关系。如果命中了,那么转载 2016-07-04 15:05:10 · 3303 阅读 · 0 评论 -
Oracle 增加修改删除字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);删除字段的语法:alter tab转载 2016-07-12 11:17:04 · 211 阅读 · 0 评论 -
等值连接(inner)左连接(left join)和右连接(right join) 自连接
Left Join / Right Join /inner join相关关于左连接和右连接总结性的一句话:左连接where只影向右表,右连接where只影响左表。Left Joinselect * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID左连接后的检索结果是显示tbl1的所有数据和tbl2中满足wher转载 2016-02-02 11:20:58 · 2971 阅读 · 0 评论 -
Mysql学习总结——并发量大、数据量大的互联网业务数据库设计军规
一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)新库使用utf8mb4字符集解读:万国码,无需转码,无乱码风险,节省空间(3)数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的(4)禁止使用存储过程、视图、触发器、Event解读:高并发大数据的互联网业务,架构...转载 2019-06-28 10:04:53 · 118 阅读 · 0 评论