SQL 语句
一般常使用大写
INSERT 插入
INSERT INTO `post`(数据表名,使用反引号或者不使用反引号也可以) (`title`, `content`)(表格内字段名) VALUES
('文章1','我是一个内容'), (标题和内容,分隔用逗号)
('文章2','我是一个内容'); (结尾用分号)
SELECT 选择
SELECT * FROM `post` LIMIT 1 OFFSET 1; (选择所有数据,limit条数, offset 偏移量)
SELECT `id`, `title` FROM `post` LIMIT 1 OFFSET 1 WHERE `id` = 1;(选择字段, where 查找条件)
SELECT `id`, `title` FROM `post` LIMIT 1 OFFSET 1 ORDER BY `id` DESC;(排序)
UPDATE 更新
DELETE 删除
INDEX 索引
定义 有序性的目录
为什么使用?
加快表单的查询速度
加快 where=某个值 和范围查询
原理 B+树
索引类型
联合索引,按照两个字段建立索引
复合索引
先按 A 不相等的排,相等的话按照B排。不能做 A B 同时的 range query
MEMCACHED
主键和外键
主键: 用于表示数据的唯一标示,不能为null。 如:id
外键: 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。 如:post 里的userId
哈希函数
key-hash function-> hash code
简单hash 不考虑冲突
Put
Get
hash 是不可逆的
MD5
string=>string(32位16进制字符串)
相同hash有可能由不同字符串生成
靠key,hash 对 可以猜到密码。盐(通过添加其他字符,生成不同的hash)
CSRF(Cross site request forgery)
CSRF攻击攻击原理及过程如下:
1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
Http Status Code
消息队列
需要缓冲,等待的任务队列,等待 webserver 执行完返回