mysql学习
文章平均质量分 57
重生之我是一名程序员
IN IT && WIN IT !
展开
-
mysql问题 - 多个索引选择问题
在单中有多个独立的索引存在时, 可以考虑mysql是否用到了索引合并【index merge】转载 2023-08-31 09:08:57 · 92 阅读 · 0 评论 -
mysql-索引合并
MySQL 5.0 之前,一个表一次只能使用一个索引,无法同时使用多个索引分别进行条件扫描。但是从 5.1 版本开始,引入了索引合并()技术,对同一个表可以使用多个索引分别进行条件扫描,然后将结果进行合并处理,最后再进行回表查询。使用 EXPLAIN 对 SQL 语句进行查看,如果使用了索引合并。列会显示出所有使用的索引。列会显示具体的索引合并算法。转载 2023-08-31 09:07:55 · 101 阅读 · 0 评论 -
mysql函数-mysql函数-LAST_INSERT_ID
mysql函数-LAST_INSERT_ID With no argument, LAST_INSERT_ID() returns a BIGINT UNSIGNED (64-bit) value representing the first automatically generated value successfully inserted for an AUTO_INCREMENT转载 2018-01-16 09:25:11 · 441 阅读 · 0 评论 -
mysql函数-FROM_UNIXTIME
mysql函数-FROM_UNIXTIME将一个unix_timestamp时间戳转成日期字符串用法: FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)如果第二个参数format不为空,则转成format日期格式的字符串mysql> select from_unixtime(1111860000);+-转载 2017-11-12 16:03:14 · 1535 阅读 · 0 评论 -
mysql字符串拼接函数:concat和concat_ws
concat函数 CONCAT(str1,str2,…)在使用concat遇到了这样的一个问题,在更新用户收货地址id的时候: update t_user tu set user_addr_id = ( select id from t_addr ta where concat(ta.province, ta.city, ta.county)原创 2017-10-21 09:14:15 · 6454 阅读 · 0 评论 -
mysql函数-UNIX_TIMESTAM
mysql函数-UNIX_TIMESTAM返回一个unix的时间戳 (seconds since ‘1970-01-01 00:00:00’ UTC)用法 : UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)mysql> select unix_timestamp();+------------------+| unix_timestamp() |+------转载 2017-11-12 15:55:43 · 366 阅读 · 0 评论 -
mysql函数之INSTR
mysql函数之INSTR INSTR(STR,SUBSTR) 在一个字符串(STR)中搜索指定的字符(SUBSTR),返回发现指定的字符的位置(INDEX),如果没有找到就直接返回0select instr('hello sql', 'sql') > 0 //判断sql是否在'hello sql'中原创 2017-10-17 21:36:50 · 587 阅读 · 0 评论 -
mysql函数-GROUP_CONCAT
GROUP_CONCAT GROUP_CONCAT ([DISTINCT] expr [,expr …] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name …]] [SEPARATOR str_val])This funct转载 2017-11-30 09:12:16 · 162 阅读 · 0 评论 -
mysql-sql问题集
mysql-sql问题1.group by分组取每个组中最新的数据(单表)解决方案:先对表中时间字段按照降序排列,然后对降序之后的结果集进行分组转载 2017-12-10 17:46:35 · 170 阅读 · 0 评论 -
navicat 连接mysql -- Client does not support authentication protocol requested by server
在用navicat连接 mysql_5.7.23-0ubuntu0.18.04.1 (Ubuntu)出现错误: Client does not support authentication protocol requested by server根据网络查找的答案: ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_passwor...转载 2018-08-18 10:52:27 · 153 阅读 · 0 评论 -
mysql中not-null插入问题
mysql表结构中not null插入的问题问题mysql> desc t_info;+-------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+--------------+------+-----+--------原创 2017-11-14 11:36:54 · 2195 阅读 · 0 评论 -
mysql问题_too_many_connections
mysql问题-“Too many connections”线上程序报了个错: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many c...转载 2018-07-11 08:53:55 · 252 阅读 · 0 评论 -
mysql explain extra 列
【代码】mysql explain extra 列。转载 2022-10-10 08:43:53 · 69 阅读 · 0 评论 -
mysql优化: waiting for.. Copying to tmp table
mysql优化: waiting for.. Copying to tmp table因为临时的结果集大于mysql中tmp_table_size设置的大小,默认是16M,mysql会将数据转存到磁盘mysql> show variables like '%tmp%';+-------------------+---------------+| Variable_name ...转载 2018-06-07 08:53:16 · 725 阅读 · 0 评论 -
mysql中文排序问题
纯中文select * from user order by convert(column USING gbk/gb2312);数字+中文order by column+0 desc/asc或order by column*1 desc/asc暂时遇到这两种情况原创 2017-10-17 21:29:45 · 370 阅读 · 0 评论 -
mysql - Using filesort、Using temporary原因
产生背景: 在我们排序的过程中,因为,sort_buffer是有限的,如果,我们要查询的字段很多的话,那么,sort_buffer里面要放的字段数太多,这样内存能够同时放下的行数就会很少,就需要分成多个临时文件,再进行归并,排序的性能会很差;上,如果,有多个表的数据需要进行排序,那么,Mysql会先创建一张临时表来保存数据,然后,再在临时表上使用filesort进行排序,最后输出结果。来进行区分,如果,一行的内容不是很大,那么,就整个字段读取出来进行排序,称为。如果,整个字段内容很大,那么,就采用。转载 2022-10-12 08:30:13 · 414 阅读 · 0 评论 -
mysql 查询 类型
在UNION 中的第二个和随后的SELECT 被标记为UNION。这就是之前的例 子中在UNION 中的第一个SELECT 显示为PRIMARY 的原因。如果 UNION 被FROM 子句中的子查询包含,那么它的第一个SELECT 会被 标记为DERIVED。DERIVED 值用来表示包含在FROM 子句的子查询中的SELECT , MySQL会递归执行并将结果放到一个临时表中。包含在SELECT 列表中的子查询中的SELECT (换句话说,不 在FROM 子句中)标记为SUBQUERY。转载 2022-10-11 08:36:42 · 298 阅读 · 0 评论 -
mysql 查看死锁
代码】mysql查看死锁。转载 2022-08-01 09:16:53 · 900 阅读 · 0 评论 -
mysql MVCC 多版本控制
mysql MVCC 多版本控制什么是MVCC?MVCC用来解决什么问题?MVCC是怎么实现的?什么是MVCC*多版本并发控制 *多版本并发控制(Multi-Version Concurrency Control,MVCC),是MySQL提高性能的一种方式,配合Undo日志和版本链,让不同事务的读-写、写-读操作可以并发执行,从而提升系统性能。一般在使用 读已提交(READ COMMITTED)和 可重复读(REPEATABLE READ)隔离级别的事务中实现在InnoDB中,转载 2021-05-01 17:20:52 · 169 阅读 · 0 评论 -
tomcat_jdbc配置
tomcat jdbc配置背景最近在导入数据时经常出现connection has been closed的异常,排除了数据库8小时问题后(将wait_timeout值设置了一个比较大的值),然并卯,最后捣腾到时数据库连接池上,最终通过增加ResetAbandonedTimer拦截器可以使得处理长时间查询不断开原作者博客地址:Apache Tomcat jdbc-pooltom...转载 2018-03-13 22:37:05 · 8894 阅读 · 0 评论 -
mysql中的interactive_timeout和wait_timeout
interactive_timeout和wait_timeout(mysql8小时)mysql默认的interactive_timeout和wait_timeout时间是28800秒,也就是我们所说的8小时问题引起的原因mysql> show variables like '%timeout%';+-----------------------------+----------...转载 2018-03-08 23:02:05 · 1953 阅读 · 0 评论 -
mysql语句定界符[delimiter]
mysql默认的语句定界符为;,即: mysql> select user, host from mysql.user;+-------+-----------+| user | host |+-------+-----------+| root | 127.0.0.1 || root | ::1 || berry | localhost || root原创 2017-10-21 09:28:46 · 2588 阅读 · 1 评论 -
mysql授权表
mysql授权表mysql授权表位于mysql数据库中,它们分别是: 表名 安全层级 user 全局层级权限(Global privileges) db 数据库层级权限(Database-specific privileges) tables_priv 表层级权限(Table-specific privileges) columns_priv 列层级权限(C原创 2017-10-21 09:38:55 · 578 阅读 · 0 评论 -
mysql创建用户和修改密码
查询mysql表中的用户mysql> select user, host from mysql.user;+------+-----------+| user | host |+------+-----------+| root | 127.0.0.1 || root | ::1 || root | localhost |+------+-----------+原创 2017-10-21 08:31:13 · 671 阅读 · 0 评论 -
mysql数据库备份
使用mysqldump命令对mysql数据库一键备份: D:\>mysqldump -h localhost -u root -p db_spring > db_spring.sqlEnter password: ******原创 2017-10-21 21:08:38 · 155 阅读 · 0 评论 -
mysql组合查询(union和union all)
mysql组合查询(union和union all)组合查询 组合查询: 执行多条select语句,并将结果作为单个查询结果返回,这些组合查询通常称为并(union)或复合查询(compound query)场景在单个查询中从不同的表返回类似结构的数据对单个表执行多个查询,按单个查询返回数据union规则union必须由两条以上的select语句组成,语句之间使用union分隔uni原创 2017-10-22 15:52:24 · 936 阅读 · 0 评论 -
mysql关于null值排序
mysql关于null值排序结论: + order by colum asc 时,null默认被放在最前 + order by colum desc 时,null默认被放在最后 + ORDER BY IF(ISNULL(update_date),0,1) null被强制放在最前,不为null的按声明顺序[asc|desc]进行排序 -?? + ORDER BY IF(ISNULL(updat转载 2017-12-20 09:28:46 · 1247 阅读 · 0 评论 -
mysql中的定时任务
mysql中的定时任务查看mysql定时事件开启状态:mysql> show variables like '%event_scheduler%';+-----------------+-------+| Variable_name | Value |+-----------------+-------+| event_scheduler | ON |+-------------转载 2017-12-17 13:55:05 · 482 阅读 · 0 评论 -
存储函数
存储函数存储函数和存储过程很相像:它们都是包含一个或多个 MySQL 语句的被命名程序单元。和存储过程的区别:函数的参数列表中模式只能为 IN。OUT 和 INOUT 参数不被允许。制定 IN 关键字是被允许也是缺省的函数必须返回一个值,它的类型被定义于函数的头部函数能被 SQL 语句所调用函数可能不返回任何结果集转载 2017-12-17 14:55:01 · 193 阅读 · 0 评论 -
mysql查询执行过程
mysql查询执行过程<<摘自<高性能的mysql>>>mysql查询执行过程如下:客户端发送一条查询语句给服务器服务器先检查查询缓存,如果命中缓存,则立即返回存储在缓存中的结果。否则进入下一阶段服务器进行SQL解析、预处理、再由优化器生成对应的执行计划。MYSQL根据优化器生成的执行计划,调用存储引擎的API执行查询将结果返回给客户端转载 2018-01-01 18:59:54 · 156 阅读 · 0 评论 -
mysql中的In
mysql中的In mysql中的in() 不等于多个or条件的子句,在mysql中先将in()列表中的数据进行排序,然后通过二分查找的方式来确定列表中是否满足条件,这是一个O(log n)的复杂度的操作,而or查询是一个O(n)复杂度的操作1摘自<高性能的mysql> ↩转载 2018-01-01 19:29:32 · 226 阅读 · 0 评论 -
mysql中的using
mysql 中using The USING(column_list) clause names a list of columns that must exist in both tables. If tables a and b both contain columns c1, c2, and c3, the following join compares corresponding col转载 2018-01-03 20:57:35 · 2170 阅读 · 0 评论 -
mysql性能剖析
mysql性能剖析<<摘自<高性能的mysql>>> 基于执行时间的分析和基于等待的分析:基于时间的分析研究的是什么任务执行的时间最长,而基于等待的分析则是判断任务在什么时间被阻塞的时间最长转载 2018-01-03 21:25:03 · 141 阅读 · 0 评论 -
mysql中三种方式使用where条件
mysql中三种方式使用where条件>>mysql中三种方式使用where条件,由好到坏:在索引中使用where条件过滤不匹配的记录,这是在存储引擎层完成的使用索引覆盖挺扫描(在Extra列中出现了Using index)来返回记录,直接从索引中过滤不需要的记录返回命中的结果。这是 在mysql服务器层完成的,但无需再回表查询记录从数据表中返回数据,然后过滤不满足条件记录(在E转载 2018-01-07 10:21:41 · 4433 阅读 · 0 评论 -
mysql中的serial类型
mysql中的serial类型偶然看到mysql中还有serial这种类型,就到mysql reference中查看了一下: SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. SERIAL DEFAULT VALUE in the definition of an integer转载 2018-01-09 08:55:43 · 9400 阅读 · 0 评论 -
mysql中三种方式使用where条件
mysql中三种方式使用where条件>>mysql中三种方式使用where条件,由好到坏:在索引中使用where条件过滤不匹配的记录,这是在存储引擎层完成的使用索引覆盖挺扫描(在Extra列中出现了Using index)来返回记录,直接从索引中过滤不需要的记录返回命中的结果。这是 在mysql服务器层完成的,但无需再回表查询记录从数据表中返回数据,然后过滤不满足条件记录(在E转载 2018-01-20 15:19:20 · 1455 阅读 · 0 评论 -
SQL分类
SQL分类SQL语句主要分成以下三个类别:DDL(Data Definition Languages): 数据定义语言,主要包括create、drop、alter等关键字。这些语句定义了不同的数据段、数据库、表、列、索引等DML(Data Manipulation Languages): 数据 操纵语言,主要包括insert、delete、update和select等关键字。用于添加、...转载 2018-02-10 21:40:10 · 163 阅读 · 0 评论 -
mysql字符集
对于中文,常见的有:GB2312:主要包括简体中文字以及常用的符号,对中文来讲采用双字节编码格式,也就是说一个汉字存储时占用两个字节GBK:包括有中、日、韩的字符集,GB2312是GBK的一个子集,GBK也是采用双字节编码的格式UTF-8:对于英文字符采用一个字节编码,而对于多字节符(如中文)则使用3字节编码 UTF8MB4:是UTF-8的超集,mysql5.5开始引入,其引入是为了处理像转载 2017-10-27 09:11:47 · 149 阅读 · 0 评论