草庐IT

MySQL实战45讲 9

09|普通索引和唯一索引,应该怎么选择?每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的SQL语句:selectnamefromCUserwhereid_card='xxxxxxxyyyyyyzzzzz';由于身份证号字段比较大,不建议你把身份证号当做主键,那么现在有两个选择,要么给id_card字段创建唯一索引,要么创建一个普通索引。Q:从性能的角度考虑,选择唯一索引还是普通索引呢?选择的依据是什么呢?A:ans用k来表示上面的身份证号,假设字段k上的值都不重复。查询过程假设,执行查询的语句是selecti

MySQL实战45讲 9

09|普通索引和唯一索引,应该怎么选择?每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的SQL语句:selectnamefromCUserwhereid_card='xxxxxxxyyyyyyzzzzz';由于身份证号字段比较大,不建议你把身份证号当做主键,那么现在有两个选择,要么给id_card字段创建唯一索引,要么创建一个普通索引。Q:从性能的角度考虑,选择唯一索引还是普通索引呢?选择的依据是什么呢?A:ans用k来表示上面的身份证号,假设字段k上的值都不重复。查询过程假设,执行查询的语句是selecti

MySQL实战45讲 4,5

04|深入浅出索引(上)索引的出现其实就是为了提高数据查询的效率,就像书的目录一样索引的常见模型哈希表、有序数组和搜索树哈希表User2和User4根据身份证号算出来的值都是N,但没关系,后面还跟了一个链表。需要注意的是,图中四个ID_card_nhash出来的值并不是递增的,这样做的好处是增加新的User时速度会很快,只需要往后追加。但缺点是,因为不是有序的,所以哈希索引做区间查询的速度是很慢的,需要全部扫描一遍。所以,哈希表这种结构适用于只有等值查询的场景,比如Memcached及其他一些NoSQL引擎。有序数组有序数组在等值查询和范围查询场景中的性能就都非常优秀数组就是按照身份证号递增的

MySQL实战45讲 4,5

04|深入浅出索引(上)索引的出现其实就是为了提高数据查询的效率,就像书的目录一样索引的常见模型哈希表、有序数组和搜索树哈希表User2和User4根据身份证号算出来的值都是N,但没关系,后面还跟了一个链表。需要注意的是,图中四个ID_card_nhash出来的值并不是递增的,这样做的好处是增加新的User时速度会很快,只需要往后追加。但缺点是,因为不是有序的,所以哈希索引做区间查询的速度是很慢的,需要全部扫描一遍。所以,哈希表这种结构适用于只有等值查询的场景,比如Memcached及其他一些NoSQL引擎。有序数组有序数组在等值查询和范围查询场景中的性能就都非常优秀数组就是按照身份证号递增的

MySQL实战45讲 6,7,8

06|全局锁和表锁:给表加个字段怎么有这么多阻碍?Connection连接与Session会话通俗来讲,会话(Session)是通信双⽅从开始通信到通信结束期间的⼀个上下文(Context)。这个上下文是⼀段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息。连接是物理上的客户端同服务器的通信链路根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。全局锁全局锁就是对整个数据库实例加锁Flushtableswithreadlock(FTWRL)当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(

MySQL实战45讲 6,7,8

06|全局锁和表锁:给表加个字段怎么有这么多阻碍?Connection连接与Session会话通俗来讲,会话(Session)是通信双⽅从开始通信到通信结束期间的⼀个上下文(Context)。这个上下文是⼀段位于服务器端的内存:记录了本次连接的客户端机器、通过哪个应用程序、哪个用户登录等信息。连接是物理上的客户端同服务器的通信链路根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。全局锁全局锁就是对整个数据库实例加锁Flushtableswithreadlock(FTWRL)当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(

Codeforces Round #845 (Div. 2) and ByteRace 2023 C-E

碎碎念这次a和b过的可能是有生以来最快的(?)然后写C写了一个多小时还没写出来(悲)最后剩不到二十分钟看了眼D,结果瞬间悟出了答案(属于是开题失误了)最后以最快速度写完,一抬头发现刚好时间到了(樂)属于是到手的紫名飞了呜呜C题题意思路比赛时没有注意到的一个重要性质是答案只与最大值和最小值相关,这是十分不应该的。注意到这一点后对所有smartness排序就成为了很自然的想法。接下来就是考虑对于左端点为l时维护当右端点r取到哪里时能凑出的topic的数目为m了,这可以利用双指针线性求出。D题题意大概就是说有个树,每个节点都可能是1或者是0,每过一秒所有节点的值都会变成它们儿子异或起来的值,叶子则会

Codeforces Round #845 (Div. 2) and ByteRace 2023 C-E

碎碎念这次a和b过的可能是有生以来最快的(?)然后写C写了一个多小时还没写出来(悲)最后剩不到二十分钟看了眼D,结果瞬间悟出了答案(属于是开题失误了)最后以最快速度写完,一抬头发现刚好时间到了(樂)属于是到手的紫名飞了呜呜C题题意思路比赛时没有注意到的一个重要性质是答案只与最大值和最小值相关,这是十分不应该的。注意到这一点后对所有smartness排序就成为了很自然的想法。接下来就是考虑对于左端点为l时维护当右端点r取到哪里时能凑出的topic的数目为m了,这可以利用双指针线性求出。D题题意大概就是说有个树,每个节点都可能是1或者是0,每过一秒所有节点的值都会变成它们儿子异或起来的值,叶子则会

PHY驱动调试之 --- MDIO/MDC接口22号和45号条款(一)

 最近在调试一款Phy的驱动,从没有任何头绪到略有了解经历了太多的痛苦,于是决定写这个系列篇记录一下。特别感谢无数优秀的博主无私奉献很多优秀的博文给予了我很大的帮助。在这个系列篇中,我也会转载部分优秀的博文(会附上链接),以及增添自己的理解,如果部分内容有侵权的地方,麻烦联系我。概述管理MII接口的MDIO接口是一个双线的串行接口,用来对PHY芯片等物理层信息进行操作管理。MDIO的历史MDIO是ManagementDataInput/Output的缩写,有两根线,分别为双向的MDIO和单向的MDC,用于以太网设备中上层对物理层的管理。之所以能够管理这些PHY芯片,是因为能够对PHY芯片的各类

PHY驱动调试之 --- MDIO/MDC接口22号和45号条款(一)

 最近在调试一款Phy的驱动,从没有任何头绪到略有了解经历了太多的痛苦,于是决定写这个系列篇记录一下。特别感谢无数优秀的博主无私奉献很多优秀的博文给予了我很大的帮助。在这个系列篇中,我也会转载部分优秀的博文(会附上链接),以及增添自己的理解,如果部分内容有侵权的地方,麻烦联系我。概述管理MII接口的MDIO接口是一个双线的串行接口,用来对PHY芯片等物理层信息进行操作管理。MDIO的历史MDIO是ManagementDataInput/Output的缩写,有两根线,分别为双向的MDIO和单向的MDC,用于以太网设备中上层对物理层的管理。之所以能够管理这些PHY芯片,是因为能够对PHY芯片的各类