mysql
徐师兄学姿势
成年人的世界没有容易二字,加油!!!
展开
-
如何根本上防止SQL注入
现在的数据库系统都提供SQL语句的预编译(prepare)和查询参数绑定功能,在SQL语句中放置占位符’?’,然后将带有占位符的SQL语句传给数据库编译,执行的时候才将用户输入的数据作为执行的参数传给用户。这样的操作不仅使得SQL语句在书写的时候不再需要拼接,看起来也更直接,而且用户输入的数据也没有机会被送到数据库的SQL解释器被编译执行...原创 2021-01-13 20:40:13 · 132 阅读 · 0 评论 -
Mysq死锁问题发现以及原理和解决方案
众所周知,我们开发当中多多少少会遇到mysql死锁问题,这个也是大厂面试经常问的问题!以mysql的InnoDB的默认的RR隔离级别来说。死锁成因:不同事物相互等待对方的资源,形成环路当两个事物相互等待对方的资源,可以设置InnoDB_lockWait_timeout.不会一直等待,而是超过这个设置的获取锁的等待时间就会自动进行回滚,使得另外一个事物正常执行,如果说client ACK丢失怎么办?服务端会有重传机制这个次数默认5次,如果超过这个次数之后还未收到client的ACK就自.原创 2021-01-05 16:04:37 · 189 阅读 · 4 评论 -
MySQL报错!Data truncation: Out of range value for colum
表面上看是字段设置的不够长,其实这里面隐藏一个小知识,关于无符号数和有符号数今天项目表中有一个userId int(11)和mobilephone varchar(11)字段 因为某种业务需求 这两个字段设置的内容一样;varchar类型存手机号 肯定没问题 手机号就是11位;但是存userId的时候 就不行了,我们知道:对于 int类型来说 存储有符号数 和 无符号数的 范围是不一样的:有符号数:[-2^31, 2^31 - 1]无符号数:[0, 2^32 - 1]int(11)默认是存储的原创 2020-07-24 16:51:28 · 4764 阅读 · 0 评论 -
MySQL索引大解析
1、理解索引本质索引是一个存储 每行数据的磁盘地址 的数据结构:提高查询和更新数据库表的速度全表扫描 and 走索引检索这个数据结构里面放的健值对(一般key就是咱们添加索引的字段,值就是对应的磁盘地址)索引类型:normal:普通的索引,没啥特殊要求unique:唯一索引,字段的值不能重复特殊的唯一索引:primary key主键,而且不能为nullfull text: 文本类型的字段,匹配某个字段like,可以创建全文索引,char,varchar,text这时候不需要用like原创 2020-07-06 10:58:55 · 352 阅读 · 0 评论 -
最全MySQL事务与锁机制解析
1. 什么是事务?1.1 数据库事务的典型场景例如金融系统:订单:同时需要操作订单表和资金表和物流表,这个时候我们就需要他们在一个事务里面完成;转账:同时一个账户的金额增加一个账户的金额减少1.2 什么是事务?事务的定义:事务是数据库管理系统执行过程当中的一个逻辑单位,由一个有限的数据库操作序列构成1.3 那些存储引擎支持事务?InnoDB,这也是它成为mysql的默认引擎的原因之一1.4 事务的四大特性(1) 原子性 Atomicity: 最小无法分割的操作单位 要么全都原创 2020-07-01 15:46:22 · 248 阅读 · 0 评论