mysql
1.并发读写和锁
mysql并发控制,通过锁来解决。读锁是共享的,相互不阻塞,多个客户可以同一时刻读取同一个资源,但不可写,必须等待释放读锁后才能加写锁。而写锁是排他的,一个写锁会阻塞其他的写锁和读锁。mysql会通过锁定防止其他用户读取同一数据。所以,写会影响读取,所以读写分离很重要。
锁分为表锁,行级锁。行级锁并发稿,锁开销大。
locktype类型:
WRITE 被锁定的数据表允许当前用户线程(发出LOCK命令的用户‘线程’)进行读和写,其他用户则不能进行读写修改操作。
READ 被锁定的数据表对全体用户线程可读,但不允许修改(包括发出LOCK命令的用户线程),
READ LOCAL 类似于READ锁定类型,但允许不影响现在数据记录的INSERT命令执行。
LOW PRIORITY WRITE
MyISAM存储引擎存在读阻塞,如用户在当前线程发出LOCK命令锁定A表,那么B表也会受到影响,但在其他线程B表则不被影响。
2.吞吐量:单位时间内的事务处理数。tps(每秒事务处理数字),tpm
3.并发性:在测试单位时间内同时的请求数,看其对吞吐量和响应时间的影响。
4.查询只能使用索引的最左前缀,知道遇到第一个范围条件列。