
MySQL学习
文章平均质量分 64
算法真不会
这个作者很懒,什么都没留下…
展开
-
sql注入原理以及解决方案
sql注入1.基本定义2.注入原理2.1恶意拼接查询2.2利用注释执行非法命令2.3传入非法参数2.4 添加额外条件3.避免sql注入3.1过滤输入内容,校验字符串3.2参数化查询3.3开发过程中的点 1.基本定义 sql injection 是发生在web程序中数据库层的安全漏洞 主要原因是程序对用户输入数据的合法性没有进行一个判断和处理,导致攻击者可以在web应用程序中事先定义好的 sql 语句中添加额外的sql语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,转载 2022-01-26 14:47:53 · 1631 阅读 · 1 评论 -
隔离级别小总结
未提交读,事务中发生了修改,即使没有提交,其他事务也是可见的,比如对于一个数A原来50修改为100,但是我还没有提交修改,另一个事务看到这个修改,而这个时候原事务发生了回滚,这时候A还是50,但是另一个事务看到的A是100.可能会导致脏读、幻读或不可重复读 提交读,对于一个事务从开始直到提交之前,所做的任何修改是其他事务不可见的,举例就是对于一个数A原来是50,然后提交修改成100,这个时候另一个事务在A提交修改之前,读取的A是50,刚读取完,A就被修改成100,这个时候另一个事务再进行读取发现A就突然变.原创 2021-09-25 13:17:47 · 153 阅读 · 0 评论 -
MySql执行一条语句过程
Server层按顺序执行sql的步骤为: 客户端请求 连接器(验证用户身份,给予权限) 查询缓存(存在缓存则直接返回,不存在则执行后续操作) 分析器(对SQL进行词法分析和语法分析操作) 优化器(主要对执行的sql优化选择最优的执行方案方法) 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口) 去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果) 简单概括: 连接器:管理连接、权限验证; 查询缓存:命中缓存则直接返回结果; 分析器:对SQL进行词法分析、语法分析;(判断查询的SQL.原创 2021-09-25 11:40:49 · 120 阅读 · 0 评论 -
浅谈索引底层
索引索引引入,从磁盘交互角度InnoDB在建立索引数据结构时,为什么用其他不行?B树和B+树最有意义的区别InnoDB,MyISAM区别 索引引入,从磁盘交互角度 首先MySql在运行时与磁盘交互的基本单位是16KB(一个页) MySql中的数据文件是以16KB的page保存在磁盘中的 MySql的CURD操作都必须要通过计算,去找到对应的插入位置,修改位置,查询数据的位置,这个过程的计算是需要CPU的参与,把数据移动到内存中 所以在特定的时间内,数据一定是在磁盘中有,内存中也有,后续再以一定的刷新策略刷原创 2021-09-17 14:22:40 · 135 阅读 · 0 评论 -
Centos7下MariaDB的使用
MariaDB数据库的使用 MariaDB的前期准备 数据库操作 MySQL连接原理 三级目录 首先查看虚拟机下是否安装MariaDB,使用命令行 [root@localhost ~]# rpm -qa|grep mariadb 如果存在则会出现 关键在于server,如果没有这个就用阿里源自行安装 yum -y install mariadb-devel yum -y install mariadb-server MariaDB的前期准备 1.查看MariaDB数据库的状态 service ma原创 2020-08-05 20:11:46 · 2267 阅读 · 1 评论