show processlist
查看连接数,可以发现有很多连接处于sleep状态,这些其实是暂时没有用的,所以可以kill掉
show variables like "max_connections"
查看最大连接数,应该是与上面查询到的连接数相同,才会出现too many connections的情况
set GLOBAL max_connections=1000
修改最大连接数,但是这不是一劳永逸的方法,应该要让它自动杀死那些sleep的进程。
show global variables like 'wait_timeout'
这个数值指的是mysql在关闭一个非交互的连接之前要等待的秒数,默认是28800s
set global wait_timeout=300
修改这个数值,这里可以随意,最好控制在几分钟内
set global interactive_timeout=500
修改这个数值,表示mysql在关闭一个连接之前要等待的秒数,至此可以让mysql自动关闭那些没用的连接,但要注意的是,正在使用的连接到了时间也会被关闭,因此这个时间值要合适
SHOW VARIABLES LIKE '%table_open_cache%'
查看
show global status like 'Open%tables'
mysql存储过程支持用表作为参数。
这个问题在MySQL 5.0以前非常麻烦,但是在MySQL 5.0.13版之后,由于引入了PREPARE语句,一切变得简单了。
例子如下(已验证):
DROP PROCEDURE IF EXISTS `newtable`CREATE PROCEDURE `newtable`(IN tname varchar(64))
BEGIN
SET @sqlcmd = CONCAT('CREATE TABLE ', tname, ' (id int NOT NULL AUTO_INCREMENT, name varchar(64) DEFAULT NULL, PRIMARY KEY (`id`))')
PREPARE stmt FROM @sqlcmd
EXECUTE stmt
DEALLOCATE PREPARE stmt
END
call newtable('abc')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)