20.锁问题锁是计算机协调多个进程或线程并发访问某一资源的机制。 20.1 Mysql锁概述锁类型分为表级锁、页面锁、行级锁。表级锁:一个线程对表进行DML时会锁住整张表,其它线程只能读该表,如果要写该表时将产生锁等待。 优点:开销少、加锁快、不会产生死锁。缺点:锁粒度大、容易产生锁等待、并发低。行 ...
分类:
数据库 时间:
2018-12-15 15:56:30
阅读次数:
267
最近在准备面试,mysql 实在是不熟悉,就先摘录一些网上的面试题来看一下. 1. MyISAM 和 InnoDB 区别? InnoDB 支持事务处理,支持更大的并发update 和 insert 操作; 支持行级锁 MyISAM 性能好,多用在执行大量select操作的场景; 不支持外键 ref: ...
分类:
数据库 时间:
2018-12-12 17:42:44
阅读次数:
179
一、ROWLOCK的使用 1、ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改。因而行级锁即可保证数据的一致性,又能提高数据操作的并发性。 2、ROWLOCK告诉SQL Server只使用行级锁,ROWLOCK语法可以使用在SELECT,UPDATE和DE ...
分类:
数据库 时间:
2018-12-11 12:52:12
阅读次数:
228
-- 表级锁 情况SHOW STATUS LIKE 'table%';-- 行级锁 情况SHOW STATUS LIKE 'innodb_row_lock%'; -- 进程列表SHOW PROCESSLIST ; SHOW STATUS ; SELECT prod_name FROM product ...
分类:
数据库 时间:
2018-12-06 15:23:01
阅读次数:
193
Mysql中有哪几种锁? 1.表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2.行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3.页面锁:开销和加锁时尚界于表锁和行锁之间,并发度一般。 mysql中有哪些不同的表格? ...
分类:
数据库 时间:
2018-11-17 10:30:17
阅读次数:
478
1. MySQL的引擎有两种,一种是InnoDB,另外一种是MYISAM。MYISAM是基于表级锁的,在操作的时候,是将整张表都锁定,不同线程不能同时操作不同行的数据。不过这个引擎的读取性能比较高。InnoDB是行级锁,可以并发修改不同行。 2. 为表添加唯一索引: ...
分类:
数据库 时间:
2018-11-16 01:18:20
阅读次数:
216
Mysql领域的innodb存储引擎支持行级锁,innodb的行锁是通过给索引项加锁实现的,这就意味着只有通过索引条件检索数据时,innodb才使用行锁,否则使用表锁。根据当前的数据更新语句(UPDATEusersetname=‘11111‘whereaccount=‘1‘),该条件字段account并没有添加索引,所以导致数据表被锁。我们验证一下:第一种情况,通过
分类:
数据库 时间:
2018-11-12 20:26:53
阅读次数:
213
InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。Inn ...
分类:
数据库 时间:
2018-11-10 12:41:05
阅读次数:
350
1.数据库的锁作用 主要防止幻读,脏读,不可重复读,处理数据库并发。 2.锁的分类 a.根据锁的粒度来分,有行级锁以及表级锁。 <1>表级锁:MyIsam就是用的表级锁,它是偏向读的,在执行select查询操作的时候,会自动给涉及的表加上读锁,总所周知,读锁会阻塞写,所以当一个线程在读时,其他人是可 ...
分类:
数据库 时间:
2018-11-05 23:36:00
阅读次数:
349
一、表的设计 0、必须使用默认的InnoDB存储引擎--支持事务、行级锁、并发性能好、CPU及内存缓存页优化使得资源利用率高1、表和字段使用中文注释--便于后人理解2、使用默认utf8mb4字符集--标准、万国码、无乱码风险、无需转码3、禁止使用触发器、视图、存储过程和event4、禁止使用外键-- ...
分类:
数据库 时间:
2018-10-30 18:43:53
阅读次数:
185