数据库
Cold_Blooder
这个作者很懒,什么都没留下…
展开
-
MySQL一条sql语句查出表中不同字段(列)的数量 - COUNT( DISTINCT column_name)或者COUNT( DISTINCTROW column_name)
首先创建一张书籍表,建表语句和初始化数据如下:CREATE TABLE `book` ( `id` int(20) NOT NULL, `book_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '书名', `press` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT N.原创 2020-12-04 16:10:33 · 3925 阅读 · 0 评论 -
查看linux服务器mysql的安装位置和所属磁盘分区
1、使用ps -ef | grep mysql查看mysql的进程情况原创 2020-12-02 18:38:49 · 2350 阅读 · 0 评论 -
由一条超级慢的全表查询sql导致MySQL服务故障引发的深思
1、起因某晚上忽然发现应用报错:Could not open JDBC Connection for transaction,获取不到数据库连接了。数据库配置的最大连接数是2000,正常情况下,是不会出现这种问题的。那么,是什么原因导致这种现象出现的呢?2、分析解决过程于是,使用show full processlist查看数据库连接占用情况,发现连接数已经占用满了。而且连接占用的时间都比较长,就算是一个简单的sql也等待了很长时间还是没有执行完。所以导致无法获取连接的情况。继续分析这些连接原创 2020-12-02 21:24:41 · 1780 阅读 · 1 评论 -
mysql查看连接池最大连接数以及连接使用情况
1 2 show variables like'%max_connection%'; 查看最大连接数 setglobal max_connections=1000; 重新设置最大连接数 1 2 3 4 5 6 7 8 9 10 11 mysql> show status like'Threads%'; +-...转载 2020-12-01 22:57:51 · 5043 阅读 · 0 评论 -
mysql的show processlist命令大作用
mysql的show processlist命令大作用1.当连接数据库时,报错“too many connections”,就可使用此命令查看有哪些线程正在执行2.主要列解释- command 列,显示当前连接的执行的命令,一般就是休眠( sleep ),查询( query ),连接( connect )- time: 执行时间,单位秒- state: 当前连接的sql语句的状态,很重要的列,state只是语句执行中的某一个状态,这个命令中最关键的就是state列,mysql列出的状态主要原创 2020-12-01 22:32:40 · 710 阅读 · 0 评论 -
mysql查下执行时间长的sql,并强制结束耗时长的sql
1、select Id,User,Host,db,Time,Info from information_schema.`PROCESSLIST` where info is not null; 2、SHOW PROCESSLIST; 使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。例如:kill 23...原创 2020-12-01 21:55:55 · 2632 阅读 · 0 评论 -
Mysql的 LFET/RIGHT JOIN查询慢的原因之一
今天在做项目的时候,发现有一个接口的查询速度特别慢,要一分多钟,直接导致接口超时。查看接口的sql,发现是一个左连接SELECT A.* FROM A LEFT JOIN B ON A.id = B.fid WHERE A.age = 18 AND A.TIME_ IS NOT NULL ORDER BY A.START_TIME_ DESC LIMIT 0,10...原创 2019-12-11 16:13:06 · 1126 阅读 · 0 评论 -
Mysql创建用户,授权本机和外网都可以登录。
1、方式一:创建用户时默认本机可以登录,授权外网可以登录。语法:CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码';GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;/*刷新*/flush privileges;示例:CREATE...原创 2019-10-18 11:47:22 · 808 阅读 · 0 评论 -
mysql两个select语句查出来的列一样,合并成一个结果集
使用UNION ALL 关键字假如:SELECT created_by, creation_date, remarks FROM A从A表查出来的结果有3行SELECT created_by, creation_date, remarks FROM B从B表查出来的结果有7行。********************************...原创 2019-08-09 18:35:40 · 10727 阅读 · 1 评论 -
mysql之视图
1、什么是视图?视图是mysql5.1版本出现的新特性,是一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。2、视图的创建CREATE VIEW v1AS SELECT * FROM book UNION ALL SELECT * FROM book_copy;3、视图的使用SELECT * F...原创 2019-10-08 16:20:16 · 163 阅读 · 0 评论 -
mysql之自定义变量
1、用户变量①、作用域:针对于当前会话(连接有效)②、声明并初始化 SET @用户变量名=值; SET @用户变量名:=值; SELECT @用户变量名:=值;③、更新变量的值方式一: SET @用户变量名=值; SET @用户变量名:=值; SELECT @用户变量名:=值;方式二: S...原创 2019-10-09 11:19:31 · 611 阅读 · 0 评论 -
mysql之存储过程
1、含义:一组预先编译好的sql语句的集合,可以理解成批处理语句2、好处:提高sql语句的重用性、简化代码、减少了编译次数和数据库的连接次数,提高了效率3、创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体END注意:①、参数列表包含三部分参数模式 参数名 参数类型举例:IN book...原创 2019-10-09 12:27:10 · 129 阅读 · 0 评论 -
mysql之函数
1、创建语法(函数有且仅有一个返回值)DELIMITER $;CREATE FUNCTION 函数名(参数列表) RETURNS 返回值类型BEGIN 函数体END$2、使用SELECT 函数名(参数列表)$3、查看SHOW CREATE FUNCTION 函数名4、删除DROP FUNCTION 函数名...原创 2019-10-09 14:38:50 · 135 阅读 · 0 评论