一. 查询缓存 1.开启缓存 [root@xuegod64 etc]# vim my.cnf 设置了缓存开启,缓存最大限制128M,重启服务后,再次查询 -- 开启查询缓存后 SHOW VARIABLES LIKE '%query_cache%'; 2 测试缓存 现在是缓存2次,命中一次 上面是二个查询sql语句,此时缓存数是4,如下图所示: --再次查询上面相同的sql语句,此时命中率结果为3,缓存数还是4 --查询相同的sql语句,条件值大小写不一样 SELECT ID FROM User1…
1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间后回滚.系统默认值是50秒.用户可以根据业务自行设置.生产环境不推荐使用过大的 innodb_lock_wait_timeout 参数值. -- 查看事务超时时间 SHOW VARIABLES LIKE 'innodb_lock_wait_timeout'; 也可以对当前会话进行超时设置如: set…
1.使用相同索引键值的冲突 由于mysql 的行锁是针对索引加的锁,不是针对记录加的锁,所以虽然是访问不同行的记录,但如果是使用相同的索引键,是会出现锁冲突的.设计时要注意 例如:city表city_id字段有索引,Cityname字段没有索引: 会话1 会话2 SET autocommit=0; SET autocommit=0; SELECT * FROM city WHERE city_id=14 AND Cityname='深圳' FOR UPDATE; city_id cou…
一.概述 慢查询日志记录了所有的超过sql语句( 超时参数long_query_time单位 秒),获得表锁定的时间不算作执行时间.慢日志默认写入到参数datadir(数据目录)指定的路径下.默认文件名是[hostname]_slow.log,默认超时是10秒,默认不开启慢查询日志.下面查看慢日志的几个参数: -- 是否开启慢日志 SHOW VARIABLES LIKE 'slow_query_log'; -- 慢日志文件记录位置 SHOW VARIABLES LIKE 'slow_query_…