
数据库
文章平均质量分 83
ziyonghong
爱编程有追求的热血青年
展开
-
数据库--事务实现原理
事务特性:ACID事务想要做到什么效果?按我理解,无非是要做到可靠性以及并发处理。可靠性:数据库要保证当insert或update操作时抛异常或者数据库crash的时候需要保障数据的操作前后的一致,想要做到这个,我需要知道我修改之前和修改之后的状态,所以就有了undo log和redo log。并发处理:也就是说当多个并发请求过来,并且其中有一个请求是对数据修改操作的时候会有影响,...原创 2020-03-15 23:20:36 · 1255 阅读 · 0 评论 -
数据库--死锁产生原因及解决方法
数据库与操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据时,就会产生多个事务同时存取统一数据的情况。如果对并发操作没有相应的控制就可能会导致读取和存储不正确的数据,破坏了数据库的一致性。 加锁(读锁和写锁)是一种控制方法,但当两个事务要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁。死锁1:用户A访问表A(锁住了表A),然后又访问表B;用户B访问表B,然...原创 2020-03-15 23:20:17 · 8549 阅读 · 0 评论 -
数据库--索引
索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。索引能够轻易将查询性能提升几个数量级。对于非常小的表、大部分情况下简单的全表扫描比建立索引更高效。对于中到大型的表,索引就非常有效。但是对于特大型的表,建立和使用索引的代价将会随之增长。这种情况下,需要用到一种技术可以直接区分出需要查询的一组数据,而不是一条记录一条记录地匹配,例如可以使用分区技术。...原创 2020-03-15 23:20:03 · 339 阅读 · 0 评论 -
数据库--乐观锁与悲观锁
乐观锁和悲观锁是什么?乐观锁 总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但在更新的时候会判断一下数据有没有被别人更改过。可以使用版本号机制和CAS实现。乐观锁用于多读操作的场景,冲突发生很少。 可以提高吞吐量。 比如数据库的write_condition机制 也是一种乐观锁。Java中的 java.util.concurrent....原创 2020-03-15 23:19:42 · 248 阅读 · 0 评论 -
数据库的索引实现--B+Tree
一上来就B+ Tree可能我也会一脸懵逼,那么植树节刚过,刚好来复习一下各种数吧~一、二叉查找树二叉查找树也称为二叉排序树,满足二叉查找树的一般性质,是指一棵空树具有如下性质:1、任意节点左子树不为空,则左子树的值均小于根节点的值;2、任意节点右子树不为空,则右子树的值均大于于根节点的值;3、任意节点的左右子树也分别是二叉查找树;4、没有键值相等的节点;...原创 2019-03-17 20:05:17 · 346 阅读 · 0 评论 -
mysql错误代码2003的解决办法
“ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)” 的错误: 右键“计算机”点击“管理”, 然后点击“服务和应用程序”,双击“服务”,找到MySql的服务,右键启动就可以了。...原创 2018-10-22 21:23:45 · 2752 阅读 · 0 评论 -
Java数据库连接JDBC
1.JDBC是什么?JDBC是用于在Java语言编程中与数据库连接的API。根本上,JDBC是一个规范,它提供了一整套接口,允许以一种可移植的访问底层数据库API。 Java可以用它来编写不同类型的可执行文件。 2.JDBC架构两层: 三层:UI(表现层): UI就是界面,即用户交互的界面。但它不只是一个个用户界面,也是需要有代码来接收用户输入的数据和显示处...原创 2018-10-20 18:53:23 · 1600 阅读 · 0 评论 -
MySQL登录问题 ERROR 1045的解决方法
已经不是第一次遇到这个问题了,所以打算把它写下来,免得下次又得上面查。其实特别简单的一个解决办法是:1、找到配置文件my.ini ,然后将其打开,搜索mysqld关键字找到后,在mysqld下面添加skip-grant-tables (是在mysqld下面,而网上有些是说在mysql下面,是错没有用的),保存退出。skip-grant-tables是跳过密码问题,完成这步后就可以登录M...原创 2018-10-20 16:05:57 · 8321 阅读 · 1 评论