数据库
文章平均质量分 90
java冢狐
这个作者很懒,什么都没留下…
展开
-
SQL——基础语句练习
主要是针对,一些经常遇到的SQL语句,进行了初步的总结。可以检验对sql的学习程度,对SQL语句进行进一步巩固以及加强。准备工作首先需要创建四个表,分别是:student(学生表),teacher(教师表),score(成绩表),course(课程表)建表SQL以及初始数据预置student:SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for原创 2020-12-09 10:53:07 · 1258 阅读 · 11 评论 -
SQL注入攻击如何防止
目录SQL注入攻击如何防止什么是SQL注入攻击不安全代码编写攻击方式如何防止sql注入代码层其他方法最后SQL注入攻击如何防止 SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,由于没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想获取的数据,这就是所谓的SQL Injection,即SQL注入。什么是SQL注入攻击 下面我们就通过实际生产中的例子来演示什么是SQL注入攻击。不安全代码编写原创 2020-09-21 17:48:02 · 1169 阅读 · 0 评论 -
为啥不推荐uuid作为Mysql的主键呢
为啥不推荐使用uuid作为Mysql数据库的主键呢 在mysql中设计表的时候,mysql官方并不推荐使用uuid或者不连续不重复的雪花id,而是推荐使用连续自增的主键id。 官方推荐的是auto_increment。主要原因是uuid在数据量较大的情况下,效率直线下滑。使用uuid和自增id的索引结构对比使用自增id的内部结构 自增的主键的值是顺序的,所以Innodb把每一条记录都存储在一条记录的后面。当达到页面的最大填充因子的时候(innodb是15/16) 下一条记录会写入新的页中原创 2020-09-15 11:26:28 · 1065 阅读 · 0 评论 -
一千万条数据,怎么快速查询
一千万条数据怎么快速查询普通分页查询 当我们在日常工作中遇到大数据查询的时候,第一反应就是使用分页查询。mysql支持limit语句来选取指定的条数数据,而oracle可以使用rownum来选取mysql分页查询语句如下:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset第一个参数用来指定第一个返回记录行的偏移量第二个参数指定返回记录行的最大数目当相同的偏移量时,数据量越大,花费时间越长当相同的数据量时,偏原创 2020-09-02 10:48:44 · 5545 阅读 · 0 评论 -
面试官又问我Select * 为什么效率低下?
Select * 为什么效率低下 无论是在平时的工作中还是面试中,都会遇到不让用Select *的情况,那么到底是什么原因导致其沦落到人人喊打的地步呢/效率低下的原因 在阿里java开发手册中关于Mysql的部分描述中提到:在表查询中一律不要使用* 作为查询的字段列表,需要用那些字段必须明确写明。原因如下:增加查询分析器解析的成本增减字符容易与resultMap配置不一致无用字段增加网络消耗,尤其是test类型的字段那么接下来我们就逐条深入的分析一下不需要的列会增加数据传原创 2020-09-01 16:30:11 · 2078 阅读 · 0 评论 -
SQL——基础语句练习
主要是针对,一些经常遇到的SQL语句,进行了初步的总结。可以检验对sql的学习程度,对SQL语句进行进一步巩固以及加强。原创 2019-12-05 14:21:03 · 655 阅读 · 3 评论 -
idea上利用JDBC连接MYSQL数据库(8.0版本)
主要是基于mysql8.0版本,简单介绍了下,在idea中如何使用JDBC来连接数据库,并且将读取的数据进行显示。原创 2019-12-12 15:13:53 · 7740 阅读 · 1 评论 -
数据库基础知识
主要介绍了数据库相关的知识以及面试中常见的问题以及解答原创 2020-02-26 10:09:51 · 3225 阅读 · 3 评论 -
你的sql该优化了
1.查询SQL尽量不要使用select * ,而是select具体字段2.如果知道查询结果只有一条,或者只要最大/最小一条记录,建议用limit 13.尽量避免在where子句中使用or来连接条件4.优化limit分页5.优化like语句6.使用where条件限定要查询的数据,避免返回多余的行7.尽量避免在索引列上使用mysql的内置函数8.尽量避免在where子句中对字段进行表达...原创 2020-03-26 11:03:06 · 1432 阅读 · 2 评论 -
为啥你这个sql怎么慢呢
sql执行慢 有些一句简单的sql看起来平平无奇,但是却执行很慢,一般存在这么几种可能性:大多数情况下还可以,只是偶尔出现慢的情况在数据量不变的情况下,这条sql语句一直执行很慢偶尔很慢 这种情况下,由于大多数场合下还是比较快的,具有偶发性,一般来说这条sql的书写本身没什么问题,更多的问题在于其他的外部原因导致的数据库在刷新脏页 要知道,我们往数据库里插入一条数据,或者更新一条数据的时候,数据库会在内存中把相应字段的数据给更新了,但是更新以后,数据不会立马同步持久化到磁盘中去,而是原创 2020-06-18 11:36:23 · 1306 阅读 · 0 评论 -
分库与分表
数据库分库与分表简介 就是将原本存储在一个库的数据分块存储在多个库上,将原本存储在一个表的数据分块存储在多个表里面切分模式 数据的切分根据其切分规则的类型,可以分为如下两种切分模式垂直(纵向)切分 把单一的表拆分成多个表,并分散到不同的数据库(主机)上,即将一个表中的字段进行分割出来,形成多张表存储数据优点:拆分后业务清晰,拆分规则明确系统之间进行整合或扩展很容易按照不同的类型将表放到不同的机器上便于管理便于实现动静分离、冷热分离的数据库表的设计模式数据维护简单缺点业原创 2020-07-02 15:06:36 · 367 阅读 · 0 评论 -
Select * from user的千层套路——一个sql是如何执行的
目录Select * from user的千层套路MySql的基本架构连接管理解析与优化查询缓存语法解析和预处理查询优化执行器存储引擎Select * from user的千层套路 作为一个java程序员,我们会经常和sql打交道,但是有事情我们确实不知道sql语句背后的处理逻辑比如下面这个sqlselect * from user where id='1'; 对于这么一条操作来说mysql服务器做了哪些处理呢?下面我们将说一下关于mysql数据库中对sql语句的处理逻辑MySql的基本架构原创 2020-06-19 17:17:12 · 2517 阅读 · 0 评论