
MySQL
打磨时光
我是打磨匠,关注软件开发,打磨产品,服务人类。
展开
-
【MySQL】window11 环境安装mysql
本文章是zip包安装的方式1. MySQL安装包下载zip包下载地址:https://dev.mysql.com/downloads/file/?id=507824现在oracle很多的组件下载都需要账号密码,百度共享密码:可以使用这个博主的共享账号,多谢这位博主的分享。https://blog.youkuaiyun.com/student_zz/article/details/1034200012. 解压到指定的文件夹3. 解压之后配置环境变量win+r 输入 control system 打开高原创 2022-01-15 22:38:37 · 2240 阅读 · 0 评论 -
MySQL 字符串截取函数 substring_index
substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数例子:str=blog.youkuaiyun.comsubstring_index(str,'.',1)结果是:blogsubstring_index(str,'.',2)结果是:blog.csdn如果count是正数,那么就是从左往右数,第N个分隔符的左边...原创 2020-02-23 15:55:11 · 168 阅读 · 0 评论 -
【转载】mysql 常见面试题
一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含...转载 2019-12-29 23:07:58 · 104 阅读 · 0 评论 -
SQL 删除表数据drop、truncate和delete的用法
一、SQL中的语法1、drop table 表名称 eg: drop table dbo.user_info2、truncate table 表名称 eg: truncate table dbo.user_info3、delete from 表名称 where 列名称 = 值 eg: del...转载 2019-11-29 22:42:38 · 163 阅读 · 0 评论 -
group by this is incompatible with sql_mode=only_full_group_by
MySQL、MariaDB、TiDB 等都是关系型数据库,并且都可以很好的平滑过渡。我们使使用的是 TiDB,但是在 DBA 通知升级 TiDB 之后,上线时项目报错了,this is incompatible with sql_mode=only_full_group_by后来排查发现 MySQL 5.7 以及TiDB 最新版本均不支持 group by 查询时的字段不在 group by ...原创 2019-10-25 22:36:08 · 394 阅读 · 0 评论 -
MySQL编码致使varchar类型不区分大小写
在使用 redis 进行计数,并定期将计数结果沉淀到 mysql 中,遇到一个问题,是插入到mysql的时候,发现总是会报错 duplicate key … 的错误(插入表中的数据会包含redis中使用的key值),查看了一下表的结构,发现是设置了 唯一索引。但是我在redis中存储使用的是hash,不可能出现重复的,后来打印日志发现redis中存储的key出现了大小写的问题,也就是 User,...原创 2019-10-21 22:15:33 · 1224 阅读 · 0 评论 -
mysql 复制一条记录
新建一张表:create table t_coffee( id int auto_increment primary key, name varchar(111) null, price double(5,2) null, create_time datetime null, update_time datetime null);插入两条记录:INSERT INTO t...原创 2019-08-07 22:16:18 · 942 阅读 · 0 评论 -
mysql 按年,月,日分时统计
使用 sql 中的 date_format 函数格式:DATE_FORMAT(date,format)根据format字符串格式化date值。下列修饰符可以被用在format字符串中:%M 月名字(January……December)%W 星期名字(Sunday……Saturday)%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)%Y 年, 数字, 4 位%y 年...原创 2019-07-22 23:25:37 · 486 阅读 · 0 评论 -
为什么这些SQL语句逻辑相同,性能却差异巨大
前言在一次开发中,我们需要对数据进行按时统计,所以想到了使用 sql 的 date_format 函数select date_format(create_time,'%Y-%m-%d %H') as hour, count(*) count from table_name group by date_format(create_time, '%Y-%m-%d %H ');后来发现这条 s...原创 2019-07-22 23:21:59 · 147 阅读 · 0 评论 -
关于数据库的分库分表
前言随着业务的发展,数据量不断增大,原有的表结构已经不能支撑现在的查询,这个时候我们可能就需要对表进行水平或者是垂直拆分,也就是分库分表。为什么要分库分表?分表如果单表数据量太大,会极大影响你的 sql 执行的性能,到了后面你的 sql 可能就跑的很慢了。一般来说,单表到几百万的时候,性能就会相对差一些了,就得分表了。分表是啥意思?就是把一个表的数据放到多个表中,然后查询的时候你就查一个...转载 2019-07-22 22:32:47 · 94 阅读 · 0 评论 -
mysql 为什么会选错索引
前言在写 sql 语句时,如果你没有指定使用哪个索引,那么索引是由mysql来决定的。在一次开发中,我遇到了一个问题,sql 语句并没有执行我新建立的索引,而是使用了以前建立的索引,导致查询的效率很低。那为什么mysql会为我们的sql选错索引呢?我建立一个表测试一下:CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DE...原创 2019-07-21 22:07:29 · 266 阅读 · 0 评论 -
force index 优化 sql 语句
前言在使用 sql 查询的时候,必不可少的会使用索引来优化我们的查询效率,但是有时 sql 的执行并不能刚好使用你的想要使用的索引,这是因为数据库的优化器在选择索引时,选择了错误的索引。但是我们也可以在 sql 中利用 force index 来强制 sql 查询使用某个索引。select * from table_name force index(index_name) where col...原创 2019-07-19 23:10:38 · 513 阅读 · 0 评论 -
浅谈 mysql 的事务管理
前言如果你使用 mysql ,肯定会用到事务。事务的处理是在 存储引擎层实现的; MySQL 是一个支持多引擎的数据库,并不是所有的引擎都支持事务,MyISAM 就不支持事务。事务的隔离性和隔离级别提到事务,想必会想到 ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 I,也就是“隔离性...原创 2019-07-10 23:04:15 · 230 阅读 · 0 评论 -
mysql 基础架构以及一条 sql 是如何执行的
前言作为一个开发,避免不了和数据库打交道,尤其是 mysql。往往只会用,但是没有去探究其 一条 sql 语句具体是怎么样去实现的,以及 mysql 的基础架构,接下来将记录在学习mysql 中的一些要点。mysql 基础架构mysql 主要分为 server 层 和 存储引擎层。server 层 主要连接器、查询缓存、分析器、优化器、执行器等连接器 : 管理连接,权限校验分析器:...原创 2019-07-10 22:02:55 · 110 阅读 · 0 评论 -
记一次 mysql 建立唯一索引实现插入重复自动更新
前言在往数据库插入数据的时候,需要判断某个字段是否存在,如果存在则执行更新操作,如果不存在则执行插入操作,如果每次首先查询一次判断是否存在,再执行插入或者更新操作,就十分不方便。有可能涉及事务或者锁,这样就变得复杂了。那么有没有什么简单的方法来实现更新插入操作呢?ON DUPLICATE KEY UPDATE这个时候可以给这个字段(或者几个字段)建立唯一索引,同时使用以下 sql 语句进行...原创 2019-07-14 22:17:27 · 829 阅读 · 0 评论 -
浅谈 mysql 中的索引
前言作为一个Java开发,必然要接触数据库这些东西。例如关系型数据库:mysql,sql Server ,sqlite,h2 等非关系型数据库: mongodb ,hbase ,redis图数据库:neo4j我们做的最多的操作就是对数据库的 CRUD,其中查询是我们使用最多的情况。而且随着数据量的越来越庞大,对于查询的效率有了极大的挑战,所以就有了索引,可以大大提高 sql 查询的...原创 2019-07-14 21:43:20 · 111 阅读 · 0 评论 -
mysql 更改字段属性
有的时候创建好的表,由于后续的逻辑等更改,需要修改字段的属性或者是字符串类型的长度。alter table table_name modify colume_name varchar(128);原创 2019-07-09 22:18:47 · 5250 阅读 · 0 评论 -
mysql 如何创建索引
前言当数据量特别大时,通常我们会对数据库表建立索引,这样可以大大的提高查询的效率。索引又分多种类型主键索引唯一索引普通索引全文索引…创建索引在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。ALTER TABLE1.添加PRIMARY KEY(主键索引)mysql>ALTER TABLE ...原创 2019-07-08 23:15:32 · 716 阅读 · 0 评论 -
leetcode.672 Swap Salary
Example:idnamesexsalary1Am25002Bf15003Cm55004Df500After running your update statement, the above salary table should have the following rows:idnamesexsalar...原创 2019-06-17 22:48:47 · 170 阅读 · 0 评论