目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

存档: 2020 年 05 月 (4)

CSS

盒子模型  盒模型本质上是一个盒子,封装周围的HTML元素,它包括:margin、border、padding、content(width、height)  盒子模型分两种:标准盒子模型、怪异盒子模型。 标准盒子模型 # 模型成员 margin、border、padding、content # content不包含其他成员 怪异盒子模型(IE盒子模型) # 模型成员 margin、border、padding、content # content不包含(设置的宽高不会被border和padding所影响) border、padding 改变元素的盒子模型类型 标准盒子模型:box-sizing:content-box; 怪异盒子模型:box-sizing:border-box; 盒子模型演示 <!DOCTYPE html> <html> <head> <title>盒子模型演示</title> <style type="text/css"> .content{ width: 100px; height: 10....

HTML

文档类型标签、三大标签元素 文档类型标签  <!DOCTYPE>是拿来声明文档的类型,在html文档的第一行编写。作用是告知浏览器的解析器用什么文档标准去解析当前文档。DOCTYPE不存在或格式不正确会导致文档以怪异模式呈现。 组成网页的三大标签元素  <html></html>、<head></head>、<body></body> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <!-- 当meta标签属性设置为utf-8的时候即可定义网页编码格式为utf-8 --> <title>标签定义文档的标题</title> </head> <body> hello! </body> </html> 结构层、表现层、行为层 结构层:HTML(HyperTextMarkup Language)  是一个超文本标记语言、负....

普通索引、唯一索引

查询性能对比  假设维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的 SQL 语句: select name from CUser where id_card = 'xxxxxxxyyyyyyzzzzz';  定会考虑在 id_card 字段上建索引。由于身份证号字段比较大,不建议把身份证号当做主键,那么现在你有两个选择,要么给 id_card 字段创建唯一索引,要么创建一个普通索引。如果业务代码已经保证了不会写入重复的身份证号,那么这两个选择逻辑上都是正确的。  如果从性能的角度考虑,应该选择唯一索引还是普通索引呢?选择的依据是什么呢?  假设字段 k 上的值都不重复。如下图所示:  分别对两种索引查询和更新语句的性能进行分析。 查询过程  假设,执行查询的语句是 select id from T where k=5。这个查询语句在索引树上查找的过程,先是通过 B+ 树从树根开始,按层搜索到叶子节点,也就是图中右下角的这个数据页,然后可以认为数据页内部通过二分法来定位记录。 *....

MVCC、事务隔离

事务到底是隔离的还是不隔离的?  可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。  在发生行锁冲突的时候,一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,则该事务会被锁住,进入等待状态。问题是,既然进入了等待状态,那么等到这个事务自己获取到行锁要更新数据的时候,它读到的值又是什么呢? 下面是一个只有两行的表的初始化语句。 mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL, `k` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; insert into t(id, k) values(1,1),(2,2);  需要注意的是事务的启动时机。begin/start transaction 命令并不是一个事务的起点,在执行到它们之后的第一个操作 InnoDB 表的语句....