技术文章

MySQL表锁和行锁

偶尔善良 提交于 2021-02-17 22:40:23
表锁myisam 行锁innodb 页锁(MySQL特殊的锁定级别) 1.表锁 myisam MySQL记录系统内部锁资源争用情况的参数     Table_locks_immediate:产生表级锁定的次数     Table_locks_waited:出现表级锁定争用而发生等待的次数 myisam 读写相互阻塞的表锁 应当尽量缩短select操作的时间 写锁的优先级高于读锁,即使是读请求先进入等锁队列,写请求后进入等锁队列,也是写请求先获得锁 可以设置读写的优先级 (1)执行命令SET LOW_PRIORITY_UPDATES=1,使该连接读比写的优先级高,该参数在select较多的情况下设置 (2)参数max_write_lock_count设置一个合适的值,当一个表的读锁达到这个值后,MySQL就暂时将写请求的优先级降低,给读进程一定获得锁的机会 2.行锁 innodb 共享锁、排它锁 意向锁 间隙锁 为了使行锁和表锁共存,意向锁(意向共享锁、意向排它锁) 锁之间的兼容性 排他锁和其他所有的锁不兼容 如果某一资源上已经有共享锁,可以再给它加共享锁,不能再加排他锁 如果某一资源上已被其他锁占用,可以给它再加 意向锁 一个资源上可以加多个意向共享锁,只能加一个意向排他锁 共享锁(s) 排他锁(x) 意向共享锁(is) 意向排他锁(ix) 共享锁(s) y n y n 排他锁(x

【亲测有效】Centos安装完成docker后启动docker报错docker: unrecognized service的两种解决方案

末鹿安然 提交于 2021-02-17 22:39:59
今天在学习Docker的时候 使用yum install docker安装完后启动不了,报错如下: [root@Sakura ~] # service docker start docker: unrecognized service 一直停留在以上步骤,如果有遇到和我一样类似问题的小伙伴可以按照如下方法进行安装,即可安装成功~~ 方法一: 先移除docker [root@Sakura ~] # yum remove docker 再移除docker-selinux(如果你之前有安装过的话) [root@Sakura ~] # yum remove docker-selinux 然后修改文件 [root@Sakura ~] # vi /etc/yum.repos.d/docker.repo 直接填入如下内容: [dockerrepo] name = Docker Repository baseurl =https://yum.dockerproject.org/repo/main/centos/ $releasever / enabled =1 gpgcheck =1 gpgkey =https://yum.dockerproject.org/gpg 然后启动安装: [root@Sakura ~] # yum install docker-engine 作为依赖被安装:

docker安装后启动不了 解决方法

两盒软妹~` 提交于 2021-02-17 22:39:31
第一种情况: 可能是你的selinux没有disabled,导致了守护docker的deamon进程启动不了 查看系统日志如果发现下列信息: May 7 12:34:14 localhost dockerd-current: time="2018-05-07T12:34:14.856207519+08:00" level=info msg="libcontainerd: new containerd process, pid: 37123" May 7 12:34:16 localhost dockerd-current: Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false) May 7 12:34:16 localhost systemd: docker.service: main process exited, code=exited, status=1/FAILURE (启动守护进程错误:SELinux不支持这个内核上的overlay2图形驱动程序。 要么引导到新内核

万字长文教你搞懂 MySQL 的加锁分析

旧街凉风 提交于 2021-02-17 22:38:34
编辑: 业余草 来源: https://www.xttblog.com/?p=4926 前面写了一篇 MySQL 的 2PL 文章,群里有人@我关于 MySQL 的加锁问题,事实上 MySQL 的加锁过程非常的复杂,2PL 只是一个最简单,最容易理解的一个!今天,再介绍几种加锁的思路,如有误忽喷!推荐大家阅读高性能 MySQL。 背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。 注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。 多版本并发控制 MVCC MySQL InnoDB 存储引擎,实现的是基于多版本的并发控制协议 MVCC (Multi-Version Concurrency Control) ,与 MVCC 相对的,是基于锁的并发控制,Lock-Based Concurrency Control。MVCC

java的SSH的baseDao,巧用泛型

帅比萌擦擦* 提交于 2021-02-17 22:37:26
BaseDao接口: import java.util.List; public interface BaseDao<T,PK> { public void add(T t); public void upd(T t); public void del(PK id); public T getById(PK id); public List<T> getAll(); public List<Track> getByAid(String activityId); } BaseDaoImple: import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate5.HibernateTemplate; public class BaseDaoImple<T, PK> implements BaseDao<T, PK> { // 保存当前类处理的实体类型对象类型 private Class clazz

「Selenium」- Can not connect to the Service /path/to/chromedriver @20210217

爷,独闯天下 提交于 2021-02-17 22:35:59
问题描述 # python3.7 /tmp/demo.py Traceback (most recent call last): File "/tmp/demo.py", line 4, in <module> driver = webdriver.Chrome('/srv/sharing/packages/chromedriver_linux64/chromedriver') # Optional argument, if not specified will search path. File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__ self.service.start() File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/common/service.py", line 104, in start raise WebDriverException("Can not connect to the Service %s" % self.path) selenium.common.exceptions.WebDriverException:

Java基础笔试题

耗尽温柔 提交于 2021-02-17 22:33:58
1、面向对象有(4)个特性,分别为:(抽象)、(继承)、(封装)、(多态性)。有的地方说是3个特性,去掉抽象。 2、 在使用super 和this关键字时,以下描述正确的是(A) A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B) super()和this()不一定要放在构造方法内第一行 C) this()和super()可以同时出现在一个构造函数中 D) this()和super()可以在static环境中使用,包括static方法和static语句块 注意:this不能用在static方法中! super 用在构造函数时要放在第一行,相当于调用super就刷新了构造函数 具体参考网上的大神博客:http://blog.csdn.net/lpz283929516/article/details/5372894 3、 以下对继承的描述错误的是(A) A) Java中的继承允许一个子类继承多个父类 B) 父类更具有通用性,子类更具体 C) Java中的继承存在着传递性 D) 当实例化子类时会递归调用父类中的构造方法 4、 以下关于final关键字说法错误的是(A,C)(两项) A) final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性 B) final修饰的类肯定不能被继承 C)

docker CE安装

半城伤御伤魂 提交于 2021-02-17 22:32:32
环境 centos7 2核4G yum工具 yum install -y yum-utils device-mapper-persistent-data lvm2 添加镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 将软件包添加至本地缓存 yum makecache fast 安装docker-ce yum install docker-ce -y 设置docker开机启动 systemctl enable docker 启动docker systemctl start docker 查看详细信息 docker info 来源: oschina 链接: https://my.oschina.net/u/4230760/blog/3122948

2021-2-17:Java HashMap 的中 key 的哈希值是如何计算的,为何这么计算?

寵の児 提交于 2021-02-17 22:32:30
首先,我们知道 HashMap 的底层实现是 开放地址法 + 链地址法 的方式来实现。 即数组 + 链表的实现方式,通过计算哈希值,找到数组对应的位置,如果已存在元素,就加到这个位置的链表上。在 Java 8 之后,链表过长还会转化为红黑树。 这个数组并不是一开始就很大,而是随着 HashMap 里面的值变多,达到 LoadFactor 的界限之后,就会扩容。刚开始的数组很小,默认只有 16。 这个 数组大小一定是 2 的 n 次方 ,因为找到数组对应的位置需要通过取余计算,取余计算是一个很耗费性能的计算,而对 2 的 n 次方取余就是对 2 的 n 次方减一取与运算。所以保持数组大小为 2 的 n 次方,这样就可以保证计算位置高效。 那么这个哈希值究竟是怎么计算的呢?假设就是用 Key 的哈希值直接计算。假设有如下两个 key,哈希值分别是: key1: 0000 0000 0010 1111 1001 0000 0110 1101 key2: 0000 0000 0010 0000 1001 0000 0110 1101 如果直接使用数组默认大小,取余之后 key1 与 key2 就会到数组同一个下标。其实 key1 和 key2 的高位是不一样的。 由于数组是从小到达扩容的,为了优化高位被忽略这个问题,HashMap 源码中对于计算哈希值做了优化,

免费logo设计在线生成

时间秒杀一切 提交于 2021-02-17 22:32:19
一个好的logo要有创意,不能太随意,要有个性又不能用力过猛,那么怎样设计一个有创意的公司logo呢? 给大家分享一个可以免费设计公司logo的平台: http://logo.xunjietupian.com 这是一家专业的logo设计网站,可以根据你自己的选择,搭配不同的风格自行进行设计,也可以邀请网站的设计师为你进行人工设计 也可以选择“在线生成”,自己制作logo, 进入logo设计页面后,我们可以看到页面上有很多的小图块,在上面有着“行业、风格、名字”等,我们需要对这些选项进行选择或是填写 完成选择后,系统会根据大家选择的风格喜好进行logo设计,过程很短暂 然后我们就可以看到整个页面中都是根据你的选择所设计的logo,多种不同设计风格可以随意搭配 来源: oschina 链接: https://my.oschina.net/u/4048880/blog/2997112