草庐IT

MySQL实战45讲 10

10|MySQL为什么有时候会选错索引?使用哪个索引是由MySQL来确定的可能遇到的情况:一条本来可以执行得很快的语句,却由于MySQL选错了索引,而导致执行速度变得很慢先建一个简单的表,表里有a、b两个字段,并分别建上索引:CREATETABLE`t`(`id`int(11)NOTNULL,`a`int(11)DEFAULTNULL,`b`int(11)DEFAULTNULL,PRIMARYKEY(`id`),KEY`a`(`a`),KEY`b`(`b`))ENGINE=InnoDB;然后,我们往表t中插入10万行记录,取值按整数递增,即:(1,1,1),(2,2,2),(3,3,3)直到(

MySQL实战45讲 10

10|MySQL为什么有时候会选错索引?使用哪个索引是由MySQL来确定的可能遇到的情况:一条本来可以执行得很快的语句,却由于MySQL选错了索引,而导致执行速度变得很慢先建一个简单的表,表里有a、b两个字段,并分别建上索引:CREATETABLE`t`(`id`int(11)NOTNULL,`a`int(11)DEFAULTNULL,`b`int(11)DEFAULTNULL,PRIMARYKEY(`id`),KEY`a`(`a`),KEY`b`(`b`))ENGINE=InnoDB;然后,我们往表t中插入10万行记录,取值按整数递增,即:(1,1,1),(2,2,2),(3,3,3)直到(

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)当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(