锁的相关操做 show open tables; lock table tb_item read ,tb_content WRITE; UNLOCK TABLES; order by发送filesort的对应策略 1,给order by字段添加索引 2,调高sort_buffer 使得可以将数据一次性都读进buffer,太小会致使溢写到不少tmp文件到磁盘 3,调高max_length_for_sort_data 大小 查看表状态 show status like 'table%' 若是索引使用不当,可能致使行锁变表锁,好比:在更新索引字段为string但在传参时传入的是int类型,则会致使行锁变表锁 当咱们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫作“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(GAP LOCK) 锁定具体一行 select * from tb_user u where u.id=9 for update; 提交之后会自动释放锁
查看数据的默认隔离级别 show VARIABLES like 'tx_isolation' 对索引的误操做可能致使表锁 查看性能 show profiles 查看指定行的性能 show profile cpu ,block io for query 18 查看innodb 锁的详情 show status like 'innodb_row_lock%';
mysql主从复制mysql
master配置sql
slave 配置上数据库
受权给一个用户让其能够从master上复制数据 GRANT replication SLAVE on *.* TO 'zhangsan'@'从机器数据库ip' IDENTIFIED by '1234' 查看master数据的状态 show MASTER status; 根据上面的数据配置slave GRANT MASTER TO MASTER_HOST='192.168.43.12', MASTER_USER='zhangsan', MASTER_PASSWORD='1234', MASTER_LOG_FILE='mysqlbin.00035', MASTER_LOG_POS=323 启动slave start slave 查看slave状态 show slave status; slave_io_running和slave_sql_running 必须为yes,不然仍是配置失败 中止从数据库 stop slave
GRANT replication SLAVE on *.* TO 'zhangsan'@'从机器数据库ip' IDENTIFIED by '1234'bash