摘要:
阅读全文
摘要:
1,修改数据前,删除缓存 2,先更新数据库,再更新缓存 3,延时双删,先删除缓存,更新缓存后,在删除缓存 问题:几乎就是高并发场景产生问题 先删除缓存,别人查询数据,导致数据再次更新到数据,然后修改数据库,导致缓存数据没有更新 终极办法: 串行化,更新完数据库,更新换缓存之后,才允许别人查看数据 阅读全文
摘要:
1,修改id可查看别人的信息问题 2,post直接用$_POST,导致不相干的数据被修改 3,文件上传,不校验类型 //如果上传一个php文件,就炸了 //下面都是通过获取图片数据流中头部几个字节来判断图片类型的, //这样就为web_shell注入 提供了机会,木马程序只需要在头部插入相关图片类型 阅读全文
摘要:
前端 1,前后分离 把前端代码放到cdn,优化前端代码量 2,css,js代码可以放到页面里,尽量减少单独文件 3,图片放到一个大图片里,建设服务器io 服务器端 1,使用缓存 2,优化数据库 3,使用消息队列(防止服务器卡住),防止超卖问题 阅读全文
摘要:
单例模式 <?php class sigle { protected static $ins =null; public static function getIns() { if (self::$ins==null){ self::$ins=new self(); } return self::$ 阅读全文
摘要:
分表 分库 阅读全文
摘要:
多版本并发控制 undo log,版本链,readview 阅读全文
摘要:
composer update require install dump-autoload creatd-project remove 阅读全文
摘要:
B+TREE 哈希 普通索引找id,然后通过id主键索引找数据 单列索引,多列索引,唯一索引 根节点,叶子节点,非叶子节点 聚簇索引/主键索引:需要查询的数据就在索引叶子节点内(叶子节点保存的数据是所有数据) 非聚簇索引/普通索引:通过索引找到主键id(叶子节点保存的数据是id),然后在走主键索引找 阅读全文
摘要:
悲观锁 1,读锁/共享锁 lock table t read 自己:能读,不能写 别人:能读,写等待 2,写锁/排它锁 lock table t write 自己:能读,能写 别人:读等待 解锁:unlock tables select 自动加读锁 update,delete,insert 自动加表 阅读全文