
web(apache&mysql)
文章平均质量分 72
hankwangwang
这个人很懒,什么都没有留下
展开
-
mysql的NULL导致的5个坑
2.distinct 数据丢失当使用count(distinct col1, col2)查询时,如果其中一列为NULL,那么即使另一列有不同的值,那么查询的结果也会将数据丢失,如下 SQL 所示:select count(distinct name,mobile) from person;查询执行结果如下:数据库的原始数据如下:从上述结果可以看出手机号一列的 10 条数据都是不同的,但查询的结果却为 8。3.select 数据丢失如果某列存在NULL值时,如...转载 2021-06-02 17:23:32 · 628 阅读 · 0 评论 -
B+树的详细介绍
每当我们执行某个 SQL 发现很慢时,都会下意识地反应是否加了索引,那么大家是否有想过加了索引为啥会使数据查找更快呢,索引的底层一般又是用什么结构存储的呢,相信大家看了标题已经有答案了,没错!B+树!那么它相对于一般的链表,哈希等有何不同,为何多数存储引擎都选择使用它呢,今天我就来揭开 B+ 树的面纱,相信看了此文,B+ 树不再神秘,对你理解以下高频面试题会大有帮助!为啥索引常用 B+ 树作为底层的数据结构 除了 B+ 树索引,你还知道什么索引 为啥推荐自增 id 作为主键,自建主键不行吗 什么是转载 2021-06-02 17:21:54 · 506 阅读 · 0 评论 -
3种分布式锁之mysql锁
概述在单机时代,虽然不需要分布式锁,但也面临过类似的问题,只不过在单机的情况下,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即当某个线程获取到这个资源后,就立即对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可以接着使用了。例如,在JAVA中,甚至专门提供了一些处理锁机制的一些API(synchronize/Lock等)。但是到了分布式系统的时代,这种线程之间的锁机制,就没作用了,系统可能会有多份并且部署在不同的机器上,这些资源已经不是在线程之间共享了,而是属于转载 2021-06-02 17:16:45 · 452 阅读 · 0 评论 -
一文看懂Mysql的事务
MySQL 事务本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的。数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作,有点一不做二不休的意思。假设一个网购付款的操作,用户付款后要涉及到订单状态更新、扣库存以及其他一系列动作,这就是一个事务,如果一切正常那就相安无事,一旦中间有某个环节异常,那整个事务就要回滚,总不能更新了订单状态但是不扣库存吧,这问转载 2021-06-02 17:07:02 · 179 阅读 · 0 评论 -
浏览器缓存详解:expires,cache-control,last-modified,etag详细说明
最近在对CDN进行优化,对浏览器缓存深入研究了一下,记录一下,方便后来者画了一个草图:每个状态的详细说明如下:1、Last-Modified在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记(HttpReponse Header)此文件在服务期端最后被修改的时间,格式类似这样:原创 2012-12-16 19:06:45 · 65366 阅读 · 8 评论