数据库
Geffin
欲戴王冠,必承其重
展开
-
BOSS:你连什么是 SQL 注入都不知道,我怎么给你加薪?
1 什么是 SQL 注入?所谓 SQL 注入,便是指黑客将 SQL 代码嵌入在输入参数之中,在未经过滤的情况下直接拼接到 SQL 语句之中进行解析并执行的一种攻击方法。2 一个 SQL 注入的简单例子我们来模拟一个登录场景,大家平时登录网站什么之类的需要啥呢?没错,账号密码!于是,我们的登录界面一般都是这个样子。。。当我们输入账号密码按下回车之后,会向后台返回账号密码两个参数。ht...原创 2020-03-18 11:22:00 · 2866 阅读 · 4 评论 -
数据库入门之学习《MySQL实战45讲》第41讲-第45讲笔记
《MySQL实战45讲》第41讲 怎么最快地复制一张表?怎么在两张表中拷贝数据如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然后再写回目标表。这时,有两种常用的方法。mysqldump 方法一种方法是,使用 mysqldump 命令将数据导出成一组 INSER...原创 2019-07-17 20:20:46 · 412 阅读 · 0 评论 -
数据库入门之学习《MySQL实战45讲》第36讲-第40讲笔记
《MySQL实战45讲》第36讲 为什么临时表可以重名?内存表与临时表内存表,指的是使用 Memory 引擎的表,建表语法是 create table …engine=memory。这种表的数据都保存在内存里,系统重启的时候会被清空,但是表结构还在。除了这两个特性看上去比较“奇怪”外,从其他的特征上看,它就是一个正常的表。而临时表,可以使用各种引擎类型 。如果是使用 InnoDB 引擎或者...原创 2019-07-16 18:29:53 · 825 阅读 · 0 评论 -
数据库入门之学习《MySQL实战45讲》第31讲-第35讲笔记
《MySQL实战45讲》第31讲 误删数据后除了跑路,还能怎么办?误删数据分类使用 delete 语句误删数据行;使用 drop table 或者 truncate table 语句误删数据表;使用 drop database 语句误删数据库;使用 rm 命令误删整个 MySQL 实例。误删行如果是使用 delete 语句误删了数据行,可以用 Flashback 工具通过闪回把数...原创 2019-07-14 01:32:07 · 405 阅读 · 2 评论 -
数据库入门之学习《MySQL实战45讲》第26讲-第30讲笔记
《MySQL实战45讲》第26讲备库并行复制模型其实,所有的多线程复制机制,都是要把只有一个线程的 sql_thread,拆成多个线程 coordinator 就是原来的 sql_thread,不过现在它不再直接更新数据了,只负责读取中转日志和分发事务。真正更新日志的,变成了 worker 线程。coordinator分发时遵守的规则不能造成更新覆盖。这就要求更新同一行的两个事务...原创 2019-06-15 13:09:14 · 302 阅读 · 0 评论 -
数据库入门之学习《MySQL实战45讲》第6讲-第10讲笔记
《MySQL实战45讲》第6讲MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。全局锁顾名思义,全局锁就是对整个数据库实例加锁。当整个库处于只读状态的时候,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都 select 出来存成文本。表级锁My...原创 2019-05-31 23:54:07 · 351 阅读 · 0 评论 -
数据库入门之学习《MySQL实战45讲》第16讲-第20讲笔记
《MySQL实战45讲》第16讲如何显示随机信息mysql> select word from words order by rand() limit 3;该方法比较简单,但是需要使用临时表,同时需要执行排序操作。MySQL 的表是用什么方法来定位“一行数据”的如果把一个 InnoDB 表的主键删掉,是不是就没有主键,就没办法回表了?其实不是的。如果你创建的表没有主键,或者把一...原创 2019-06-01 19:30:38 · 438 阅读 · 0 评论 -
数据库入门之学习《MySQL实战45讲》第21讲-第25讲笔记
《MySQL实战45讲》第21讲加锁规则该加锁规则,包含了两个“原则”、两个“优化”和一个“bug”:原则 1:加锁的基本单位是 next-key lock。希望你还记得,next-key lock 是前开后闭区间。原则 2:查找过程中访问到的对象才会加锁。优化 1:索引上的等值查询,给唯一索引加锁的时候,next-key lock 退化为行锁。优化 2:索引上的等值查询,向右遍历时...原创 2019-06-12 20:56:27 · 446 阅读 · 0 评论 -
数据库入门之学习《MySQL实战45讲》第1讲-第5讲笔记
《MySQL实战45讲》第1讲MySQL 的基本架构MySQL 可以分为 Server 层和存储引擎层两部分。Server 层:包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL的大多数核心服务功能,以及所有的内置函数,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层:负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、...原创 2019-05-28 21:55:27 · 982 阅读 · 13 评论 -
数据库入门之学习《MySQL实战45讲》第11讲-第15讲笔记
《MySQL实战45讲》第11讲使用前缀索引的优势使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。使用前缀索引的问题使用前缀索引可能会增加扫描行数,这会影响到性能。使用前缀索引就用不上覆盖索引对查询性能的优化了。字符串字段创建索引的方法直接创建完整索引,这样可能比较占用空间;创建前缀索引,节省空间,但会增加查询扫描次数,并且不能使用覆盖索引;倒...原创 2019-05-31 17:08:54 · 287 阅读 · 0 评论 -
数据库入门(2)--MySQL基础知识
什么是存储过程?有哪些优缺点?存储过程是一些预编译的SQL语句。更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。存储过程是一个预编译的代码块,执行效率比较高,一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信...原创 2019-05-27 20:54:05 · 341 阅读 · 0 评论 -
数据库入门之SQL基础总结
1 创建一个数据库CREATE DATABASE databasename2 删除一个数据库drop database dbname3 创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)4 删除表DROP TABLE tablename5 增加列Alt...原创 2019-05-27 20:17:39 · 568 阅读 · 0 评论