包含标签:查询 的文章
  • mysql锁表查询和解锁操作

    mysql锁表查询和解锁操作 1、在做数据库操作时,有时会因为自己的粗心或者程序设计上的缺陷导致锁表,在mysql中查看锁表和解锁的步骤如下: //1.查看当前数据库锁表的情况 SELECT * FROM information_schema.INNODB_TRX; //2.杀掉查询结果中锁表的trx_mysql_thread_id kill trx_mysql_thread_id 2、另外一种查询锁方法 1、查询是否锁表 show OPEN TABLES where In_use > 0; 2、查询进程 show processlist 查询到相对应的进程===然后 kill id 补充: 查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;  

    SE_Zhang 2024-04-12
    23 0 0
  • MySQL中间件之ProxySQL(9):ProxySQL的查询缓存功能

    ProxySQL支持查询缓存的功能,可以将后端返回的结果集缓存在自己的内存中,在某查询的缓存条目被清理(例如过期)之前,前端再发起同样的查询语句,将直接从缓存中取数据并返回给前端。如此一来,ProxySQL处理的性能会大幅提升,也会大幅减轻后端MySQL Server的压力。 1.开启query cache功能 ProxySQL的查询缓存功能由mysql_query_rules表中的cache_ttl字段控制,该字段设置每个规则对应的缓存时长,时间单位为毫秒。 当前端发送的SQL语句命中了某规则后(严格地说,是最后应用的那条规则,因为链式规则下会操作多个规则),如果这个规则同时还设置了"cache_ttl"字段的值,则这个SQL语句返回的结果将会被缓存一定时间,过期后将等待专门的线程(purge线程)来清理。 例如: delete from mysql_query_rules; select * from stats_mysql_query_digest_reset where 1=0; insert into mysql_query_rules(rule_id,active,apply,destination_hostgroup,match_pattern,cache_ttl) values(1,1,1,10,"^select .* test1.t1",20000); load mysql query rules to runtime; save mysql query rules to disk; select rule_id,destination_hostgroup,match_pattern,cache_ttl from mysql_query_rules; 这表示匹配上述规则(查询test1.t1表)的查询结果集将在ProxySQL上缓存20秒。 可以执行下面的语句进行测试,每个语句循环执行10次: # 在bash下执行 proc="mysql -uroot -pP@ssword1! -h127.0.0.1 -P6033 -e" for ((i=0;i<10;i++));do $proc "select * from test1.t1;" $proc "select * from test1.t2;" $proc "select * from test2.t1;" $proc "select * from test2.t2;" done 再去查看规则统计表: Admin> select * from stats_mysql_query_rules; +---------+------+ | rule_id | ……

    SE_You 2024-03-25
    20 0 0