![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 94
程序员世杰
公众号『程序员世杰』,就职过各互联网大厂,资深码农,专注Java后端技术栈、AIGC等领域的技术分享
展开
-
小白也能懂的Mysql数据库索引详解
一文解释:主键索引/二级索引,聚簇索引/非聚簇索引,回表/索引覆盖,索引下推,联合索引/最左联合匹配,前缀索引,explain原创 2024-06-25 09:28:31 · 1026 阅读 · 0 评论 -
彻底搞懂数据库内连接、外连接
文章目录一、定义1、内联接2、外联接3、交叉联接二、示例一、定义1、内联接典型的联接运算,使用像 = 或 <> 之类的比较运算符。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。2、外联接外联接可以是左向外联接、右向外联接或完整外部联接。 ...转载 2020-04-30 11:27:55 · 4211 阅读 · 0 评论 -
聊聊 Mysql 索引和 redis 跳表
一、Redis中的跳表跳表可以简单理解就是给链表加索引,当结点数量多的时候,这种添加索引的方式,会使查询效率提高的非常明显。跳表这个动态数据结构,不仅支持查找操作,还支持动态的插入、删除操作,而且插入、删除操作的时间复杂度也是 ○(㏒n)。对于单纯的单链表,需要遍历每个结点来找到插入的位置。但是对于跳表来说,因为其查找某个结点的时间复杂度是 ○(㏒n),所以这里查找某个数据应该插入的位置,...原创 2020-04-14 18:26:15 · 2003 阅读 · 0 评论 -
两种常见数据库引擎:MyISAM 与 InnoDB 的区别
1.事务的支持MyISAM:强调的是性能,每次查询具有原子性,其执行数度比 InnoDB 类型更快,但是不提供事务支持。InnoDB:提供事务支持事务,外部键等高级数据库功能。具有事务 (commit)、回滚 (rollback) 和崩溃修复能力 (crash recovery capabilities) 的事务安全 (transaction-safe (ACID compliant)...原创 2020-04-07 15:47:20 · 341 阅读 · 0 评论 -
Redis 常见数据结构以及使用场景
1、String(字符串):String 数据结构是简单的 key-value 类型,value 其实不仅可以是 String,也可以是数字。应用场景:常规 key-value 缓存应用;常规计数:微博数,粉丝数等。2、hash(字典): Hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象,后续操作的时候,可以直接仅仅修改这个对象中的某...转载 2020-03-29 22:12:56 · 910 阅读 · 0 评论 -
Redis 字典的底层实现
字典又称符号表,关联数组或者映射,是一种用于保存键值对的抽象数据结构。一、Redis的字典底层结构Redis 的字典使用哈希表作为底层实现,一个哈希表里面有多个哈希节点,而每个哈希表节点就保存了字典中的一个键值对,Redis的字典可以参照Java中的HashMap。哈希表代码typedef struct dictht{ //哈希表数组 dictEntry **table...转载 2020-03-29 21:58:58 · 531 阅读 · 0 评论 -
数据库执行SQL语句很慢的原因
一个 SQL 执行的很慢,两种情况讨论:1、大多数情况下很正常,偶尔很慢,则有如下原因(1)、数据库在刷新脏页,例如 redo log 写满了需要同步到磁盘。(2)、执行的时候,遇到锁,如表锁、行锁。2、这条 SQL 语句一直执行的很慢,则有如下原因。(1)、没有用上索引:例如该字段没有索引;由于对字段进行运算、函数操作导致无法用索引。(2)、数据库选错索引。1.数据库在刷新脏页,...转载 2020-03-27 11:23:06 · 2280 阅读 · 0 评论 -
MySQL日志详解
MySQL 中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。其中重做日志和回滚日志与事务操作息息相关,二进制日志也与中继日志通常用于主从复制错误日志是记录数据库故常...原创 2020-03-24 17:07:13 · 531 阅读 · 0 评论 -
彻底搞懂数据库索引
联合索引最左匹配回表覆盖索引索引下推转载 2020-04-07 16:44:03 · 296 阅读 · 0 评论 -
超详细的Redis面试题目(持续更新)
1. 什么是 Redis?Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。 Redis 的出色之处不仅仅是性能,Redis 最大的...原创 2020-03-20 17:37:24 · 391 阅读 · 0 评论 -
数据库优化详解
一、优化方向可以看出来,数据结构、SQL、索引是成本最低,且效果最好的优化手段。数据库优化从以下几个方面优化:数据库设计—三大范式、字段、表结构数据库索引存储过程 (模块化编程,可以提高速度)分表分库 (水平分割,垂直分割)主从复制、读写分离SQL 调优对 MySQL 配置优化 (配置最大并发数 my.ini, 调整缓存大小)定时清除不需要的数...原创 2020-03-06 10:59:44 · 2105 阅读 · 0 评论 -
数据库面试知识点(八)内连接,外连接,左连接,右连接,全连接
数据库中内连接和外连接其实可以理解为交集与并集 ,内连接看做是取两个表的交集 其中只有两条互相对应着的数据才能被存入结果表中 而外连接就是取并集 和内连接是相反的 如果一张表的数据在另一张表中没有找到 但是并不影响他在结果集出现 。一、内连接以下三种都是内连接语法:inner join…onjoin…oncross join…on【示例】mysql&...原创 2020-03-04 22:29:17 · 1192 阅读 · 2 评论 -
数据库面试知识点(七)主从复制和读写分离
【Java 面试那点事】这里致力于分享 Java 面试路上的各种知识,无论是技术还是经验,你需要的这里都有!这里可以让你【快速了解 Java 相关知识】,并且【短时间在面试方面有跨越式提升】面试路上,你不孤单!...原创 2020-03-04 16:04:36 · 1396 阅读 · 0 评论 -
数据库面试知识点(六)数据库锁
一、锁的种类(一)悲观锁(Pessimistic Lock):悲观锁特点: 先获取锁,再进行业务操作。即 “悲观” 的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进行业务操作。通常所说的 “一锁二查三更新” 即指的是使用悲观锁。通常来讲在数据库上的悲观锁需要数据库本身提供支持,即通过常用的 select … for update 操作来实现悲观锁。当数据库执行 select for...原创 2020-03-04 12:09:20 · 598 阅读 · 0 评论 -
数据库面试知识点(五)数据库优化相关概念
【Java 面试那点事】这里致力于分享 Java 面试路上的各种知识,无论是技术还是经验,你需要的这里都有!这里可以让你【快速了解 Java 相关知识】,并且【短时间在面试方面有跨越式提升】面试路上,你不孤单!...原创 2020-03-04 10:42:13 · 930 阅读 · 0 评论 -
数据库面试知识点(四)存储引擎
1.MySQL 常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?【Java 面试那点事】这里致力于分享 Java 面试路上的各种知识,无论是技术还是经验,你需要的这里都有!这里可以让你【快速了解 Java 相关知识】,并且【短时间在面试方面有跨越式提升】面试路上,你不孤单!...原创 2020-03-04 10:25:51 · 736 阅读 · 0 评论 -
SQL注入攻击详解
一、什么是SQL注入SQL 注入(SQLi)是一种注入攻击,,可以执行恶意 SQL 语句。它通过将任意 SQL 代码插入数据库查询,使攻击者能够完全控制 Web 应用程序后面的数据库服务器。攻击者可以使用 SQL 注入漏洞绕过应用程序安全措施;可以绕过网页或 Web 应用程序的身份验证和授权,并检索整个 SQL 数据库的内容;还可以使用 SQL 注入来添加,修改和删除数据库中的记录。SQL 注...原创 2020-03-03 17:23:20 · 8127 阅读 · 1 评论 -
PHP与JavaScript(JQuery)进行数据交换
文章目录数据流程PHP作为服务端连接数据库JavaScript接收服务端信息页面信息展示数据流程php(服务端)操作数据库javascript接收PHP传递过来的信息,并对数据进行一定的处理html显示信息PHP作为服务端连接数据库PHP接受前端发送的消息,用于查询数据库,之后把查询到的数据传递给前端。jQuery与PHP进行数据传递主要有三种方式:post、get、ajax...原创 2019-03-27 16:54:25 · 2647 阅读 · 3 评论 -
WampServer 更改或重置数据库密码
WampServer 安装后密码是空的,修改一般有两种方式:一是通过 phpMyAdmin 直接修改;二是使用 WAMP 的 MySql 控制台修改。第一种:①在 phpMyAdmin 界面中点击【用户】,将用户概况中的所有用户名为【root】用户的密码都改为【要修改的密码】。修改是点击【编辑权限】,设置密码即可。②在目录 wamp\apps 下找到 phpmyadmin ...转载 2019-05-30 16:08:31 · 3229 阅读 · 0 评论 -
Spring Boot 从入门到精通(四)Spring Boot 使⽤ JDBC 操作数据库
直接在 Java 程序中使⽤ JDBC ⽐较复杂,需要 7 步才能完成数据库的操作:加载数据库驱动建⽴数据库连接创建数据库操作对象定义操作的 SQL 语句执⾏数据库操作获取并操作结果集关闭对象,回收资源关键代码如下:try {// 1、加载数据库驱动Class.forName(driver);// 2、获取数据库连接conn = DriverManager.getCo...原创 2019-06-06 09:24:54 · 252 阅读 · 0 评论 -
java - mysql 读取 blob 数据
package com.allan; import java.sql.*; import java.io.*; public class Storeblobfile { public static void main(String[] args) { try{ FileInputStream file = new FileInputStr...原创 2019-06-21 17:36:31 · 3288 阅读 · 0 评论 -
数据库面试知识点(一)基本概念
待续原创 2019-07-09 09:27:00 · 1887 阅读 · 0 评论 -
数据库面试知识点(二)索引
待续原创 2019-07-09 09:27:48 · 1790 阅读 · 1 评论 -
数据库面试知识点(三)事务
1.什么是事务?事务是对数据库中一系列操作进行统一的回滚或者提交的操作,主要用来保证数据的完整性和一致性。2.事务的四大特性ACID原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency):事务开始前和结束后,数据库的完整性约束...原创 2019-07-09 10:54:14 · 1715 阅读 · 0 评论 -
Java面试知识点(六十六)关于Redis的面试题
1. 什么是 Redis?Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。 Redis 的出色之处不仅仅是性能,Redis 最大的...原创 2019-08-22 15:30:14 · 1894 阅读 · 2 评论 -
JavaBean与jdbc实现用户登陆的小demo
之前的开发是采用 phpStorm,前端:html+css+javascript+jquery,服务器端:php;但是这个前后台交互要通过 ajax 来实现数据交互,中间遇到了跨域的问题,卡了两天虽然解决了但是后面部署的话会比较麻烦。正好最近老板让我接手之前另一个项目开发的软件,是用 jsp 写的,一开始我是拒绝的,后来借了一本 jsp 的书,用一天的时间快速读了下,觉得这个开发部署要方便很多...转载 2018-04-03 23:09:19 · 610 阅读 · 0 评论