数据库
数据库
Nancy_G
这个作者很懒,什么都没留下…
展开
-
(数据库二)MySQL 初级
MySQL 初级为什么学习数据库数据库的概念数据库存储数据的特点数据库语句执行过程及顺序DQL(Database Query Language) 语言的学习基础查询条件查询排序查询常见函数分组函数(聚合函数)字符函数数字函数日期函数通用函数流程控制函数分组查询子查询分页查询union 联合查询DDL 语言的学习库和表的管理常见约束DML 语言的学习插入语句修改语句删除语句TCL 语言的学习事务和事务处理为什么学习数据库数据库的优点:(1)海量存储数据,永久保存(2)安全性高,查询效率高(3)分布式原创 2020-11-29 20:32:38 · 708 阅读 · 0 评论 -
(数据库十五)数据库连接泄漏
数据库连接泄露指的是如果在某次使用或者某段程序中没有正确地关闭Connection、Statement和ResultSet资源,那么每次执行都会留下一些没有关闭的连接,这些连接失去了引用而不能得到重新使用,因此就造成了数据库连接的泄漏。数据库连接的资源是宝贵而且是有限的,如果在某段使用频率很高的代码中出现这种泄漏,那么数据库连接资源将被耗尽,影响系统的正常运转。...原创 2020-11-28 16:44:31 · 1833 阅读 · 0 评论 -
(数据库十四)where、having 和 group by 的常规用法
group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤。(1) maxselect max(user_id), grade from user_info group by grade;将数据照grade字段分组,查询每组最大的user_id以及当前组内容。注意,这里分组条件是grade,查询的非聚合条件也是grade。这里不产生冲突。(2) havingselect max(user_id),grade f原创 2020-11-28 16:43:49 · 1026 阅读 · 0 评论 -
(数据库十三)慢查询的原因
1、调整数据结构的设计,对于经常访问的数据库表建立索引2、调整SQL语句, ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。3、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。4、调整硬盘 I/O,DBA可以将组成同一个表空间的数据文件放在原创 2020-11-28 16:43:35 · 143 阅读 · 0 评论 -
(数据库十二)索引
索引: 对数据库表列进行增加恰当索引,可以快速的找到匹配的记录行数,相比于默认的全表扫描,可以大大加快查找的速度。作用: 加快查找速度实现方法: 一般分为B+树索引和哈希索引。(1)B+树索引: 在B-树上改进得到,其非叶子节点均为key值,叶子节点是key-data键值对。叶子节点前后相连且有序。(2)哈希索引: 通过对key进行hash(crc/MD5/sha1/sha256…)而将记录存储在不同的bucket中,可以做到常数时间的查找,但要注意哈希冲突的避免(链表法、线性探测、二次探测、公共溢原创 2020-11-28 16:43:22 · 79 阅读 · 0 评论 -
(数据库十一)MySQL 存储引擎及其锁机制
文章目录MySQL存储引擎MyIASM和InnoDB两种引擎所使用的索引的数据结构MySQL常用存储索引的锁机制MySQL存储引擎常用的存储引擎如下:(1) InnoDB 引擎:InnoDB 引擎提供了对数据库 ACID 事务的支持,并且还提供了行级锁和外键的约束,它的设计目标就是处理大数据容量的数据库系统。MySQL 5.7.15版本默认使用的是 InnoDB 版本(2) MyIASM引擎(原本MySQL的默认引擎):不提供事务的支持,也不支持行级锁和外键。(3) MEMORY引擎:所有的数据都原创 2020-11-28 16:43:07 · 271 阅读 · 0 评论 -
(数据库十)数据库中的锁机制以及死锁产生的原因及解决办法
文章目录MySQL并发情况下引起的事务的安全问题事务隔离级别MySQL的默认的RR(可重复度)隔离级别下,如何避免事务的安全问题?锁的分类锁粒度分类锁级别分类MySQL并发情况下引起的事务的安全问题脏读: 一个事务读取另一个事务未提交的问题不可重复读: 在同一事务中,两次读取同一数据,得到内容不同幻读: 同一事务中,用同样的操作读取两次,得到的记录数不相同事务隔离级别MySQL 中有 4 种隔离级别:未提交读(READ UNCOMMITTED): 一个事务在提交之前,对其他事务是可见的,即事原创 2020-11-28 16:42:49 · 1350 阅读 · 2 评论 -
(数据库九)SQL 优化与数据库优化
对数据库做优化,主要是有以下思路:选择最有效率的表名顺序数据库的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表将被最先处理在FROM子句中包含多个表的情况下,如果个表是完全无关系的话,将记录和列名最少的表写在最后,然后依次类推。 也就是说:选择记录条数最少的表放在最后如果3个以上的表连接查询:如果个表是关系的话,将引用最多的表放在最后,然后依次类推。 也就是说:被其他表所引用的表放在最后。例如:查询员工的编号,姓名,工资,工资等级,部门名WHERE子句中的连原创 2020-11-28 16:42:32 · 220 阅读 · 0 评论 -
(数据库八)count和sum的区别,以及count(*),count(1) 和 count(列名)的区别
Redis可以实现缓存机制, Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入原创 2020-11-27 10:59:47 · 1259 阅读 · 0 评论 -
(数据库七)数据库事务、主键与外键的区别
数据库的事务:事务即用户定义的一个数据库操作序列,这些操作要么全做要全不做,是一个不可分割的工作单位,它具有四个特性,ACID,原子性,一致性,隔离性,持续性。主键和外键的区别:1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份证号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。...原创 2020-11-27 10:57:28 · 362 阅读 · 0 评论 -
(数据库六)数据库中聚集索引与非聚集索引
聚集索引中键值的逻辑顺序决定了表中相应行的物理顺序。聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引,但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。**聚集索引对于那些经常要搜索范围值的列特别有效。**使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如,如果应用程序执行的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然原创 2020-11-27 10:56:42 · 715 阅读 · 0 评论 -
(数据库五)缓存机制:Memcached 与 Redis
一、Memcached 简介Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。本质上,它是一个简洁的 key-value 存储系统。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。二、Redis 简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 相对于其他 key - value 缓存产品有以下三个特点:1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的原创 2020-11-27 10:51:53 · 213 阅读 · 0 评论 -
(数据库四)左右连接及内外连接
一、内连接:当进行内连接时,系统会自动忽略两个表中对应不起来的数据,结果包含两个表中有联系的所有数据;1、自然连接:自然连接只考虑两个关系中在共同属性上取值相同的元组对。结果中无null,不需要使用修饰词限制连接属性。关键字:natural joinSELECT * FROM person NATURAL JOIN address;2、内连接关键字:inner join / join必须使用using 或 on指定连接属性/条件,否则产生的结果与交叉连接相同SELECT * FROM stu原创 2020-11-27 10:51:27 · 1076 阅读 · 0 评论 -
(数据库三)MySQL中 CHAR 和 VARCHAR 的区别
1、char(n) 类型char类型是定长的类型,即当定义的是char(10),输入的是"abc"这三个字符时,它们占的空间一样是10个字节,包括7个空字节。当输入的字符长度超过指定的数时,char会截取超出的字符。而且,当存储char值时,MySQL是自动删除输入字符串末尾的空格。 char是适合存储很短的、一般固定长度的字符串。例如,char非常适合存储密码的MD5值,因为这是一个定长的值。对于非常短的列,char比varchar在存储空间上也更有效率。取数据的时候,char类型的要用trim()去掉原创 2020-11-27 10:49:52 · 209 阅读 · 0 评论 -
(数据库一)数据库中的事务
数据库事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。一个数据库事务通常包含了一个序列对数据库的读/写操作。它的存在包含有以下两个目的:1.为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。2.当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。当事务被提交给了DBMS(数据库管理系统),则DBMS(数据库管理系统)需要确保该事务中的所有操作都成功完成且其结果被永久原创 2020-11-27 10:48:01 · 336 阅读 · 0 评论 -
MySQL高级
MySQL高级1. MySQL简介1.1 什么是MySQL1.2 MySQL高手是如何炼成的1.3 整体架构图2. MySQL存储引擎2.1 查看存储引擎2.2 各个存储引擎的介绍2.3 InnoDB 和 MyISAM 引擎3. SQL预热之常见的 JOIN 查询图4. 索引优化分析4.1 索引简介4.1.1 索引是什么4.1.2 索引的优缺点4.2 MySQL的索引结构4.2.1 B-tree索引4.2.2 B+tree索引4.2.3 B-Tree与B+Tree 的区别4.2.4 思考:为什么说B+树比B原创 2020-11-27 10:36:53 · 1384 阅读 · 0 评论