MySQL
文章平均质量分 54
mysql
一只小辣鸡
a hot chicken
展开
-
MySQL分表后的ID怎么保证唯一性,非sharding_key查询怎么处理
分表后的ID怎么保证唯一性因为我们主键默认都是自增的,那么分表之后的主键在不同表就肯定会有冲突了。有几个办法考虑:设定步长,比如1-1024张表我们设定1024的基础步长,这样主键落到不同的表就不会冲突了。分布式ID,自己实现一套分布式ID生成算法或者使用开源的比如雪花算法这种分表后不使用主键作为查询依据,而是每张表单独新增一个字段作为唯一主键使用,比如订单表订单号是唯一的,不管最终落在哪张表都基于订单号作为查询依据,更新也一样。分表后非sharding_key查询怎么处理可以做一个map原创 2021-04-06 00:08:46 · 1817 阅读 · 0 评论 -
mysql主从同步怎么做的,主从的延迟怎么解决
mysql主从同步怎么做的?首先先了解mysql主从同步的原理master提交完事务后,写入binlogslave连接到master,获取binlogmaster创建dump线程,推送binlog到slaveslave启动一个IO线程读取同步过来的master的binlog,记录到relay log中继日志中slave再开启一个sql线程读取relay log事件并在slave执行,完成同步slave记录自己的binglog由于mysql默认的复制方式是异步的,主库把日志发送给从库后不原创 2021-04-05 23:42:29 · 302 阅读 · 0 评论 -
MySQL 两个字段的like模糊匹配
普通情况挑选出tb1表的字段a中包含关键字’abc’的语法没我们可以这样写:SELECT * FROM tb1 JOIN tb2 ON tb1.a=tb2.aWHERE tb1.b LIKE '%a%'问题但是要模糊匹配一个字段呢?我试着这样写了一下:SELECT * FROM tb1 JOIN tb2 ON tb1.a=tb2.aWHERE tb1.b LIKE tb2.bse...原创 2018-12-05 17:37:19 · 34766 阅读 · 2 评论 -
MySQL 分组排序后加编号
原表: 目标:将abcd分组后,每组分别加上编号 方法:首先我们先实现一个简单的效果:递增编号,理解一下第一个点SELECT @r:= @r + 1 AS rowNum, a.*FROM tmp_mytest a,( SELECT @r:= 0 ) b效果:知道怎么递增编号之后,我们再来实现分组递增编号,就更容易理解了...原创 2018-11-12 19:35:58 · 18945 阅读 · 2 评论 -
MySQL id从1开始连续自增 AUTO_INCREMENT_OFFSET AUTO_INCREMENT_INCREMENT
问题:设置id列为自增,却发现id值不连续,也不是从1开始的解决方法:很简单,先设置临时全局变量。设置AUTO_INCREMENT_OFFSET=1,表示id的起始值从1开始增长(但不表示第一个id就是1,看下面就懂了);设置AUTO_INCREMENT_INCREMENT=1;表示id的增长偏移量为1,就是下一个id比上一个id大1;tip:为什么说是临时全局变量,因为MySQL重启...原创 2018-11-12 18:09:38 · 2685 阅读 · 0 评论 -
Navicat远程连接腾讯云MySQL数据库
原因默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录,若想远程连接云服务器,需要进行授权。方法步骤:一、远程登录授权授予全部权限 给 所有库的所有表 用户名为root 密码为123456mysql > grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant o...原创 2018-10-19 22:48:13 · 6942 阅读 · 0 评论 -
Linux安装MySQL时没有设置密码怎么办 ERROR 1698 (28000): Access denied for user 'root'@'localhost'
问题如果安装过程中,没有设置密码,输入$mysql -u root -p,会显示ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’解决方法su 输入密码,这样可以不输入密码,用超级权限登录mysql su登录MySQLmysql -u root -p mysql -u root -p 进入mysq...原创 2018-10-19 22:39:05 · 1853 阅读 · 1 评论 -
ubuntu安装mysql
安装MySQL服务端sudo apt-get install mysql-server安装MySQL客户端sudo apt-get isntall mysql-client安装libmysqlclient-dev包sudo apt-get install libmysqlclient-devTIP:安装过程中提示设置密码,一定要设置密码!!!不要直接按Enter键跳...原创 2018-10-19 22:26:27 · 188 阅读 · 1 评论 -
SQL UPDATE警告:设置必须在update 语句后携带 where 条件
问题:在使用UPDATE更新记录时要格外小心!如果我们省略了 WHERE 子句,会将表中所有数据的更新! 所以必须在update 语句后携带 where 条件。 解决办法在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。set sql_safe_upda...原创 2018-09-06 11:41:12 · 11948 阅读 · 0 评论 -
SQL 语句的执行顺序
SQL 语句的执行顺序跟其语句的语法顺序并不一致一般而言SQL 语句的语法顺序是:SELECT[DISTINCT] FROM WHERE GROUP BY HAVING UNION ORDER BY其执行顺序为:FROM WHERE GROUP BY HAVING SELECT DISTINCT UNION ORDER BY...原创 2018-08-18 10:37:14 · 124 阅读 · 0 评论 -
SQL 函数 标准差方差 数据类型转换 日期时间
统计标准偏差 stev()总体标准偏差 stdvp()统计方差 var()总体变异方差 varp()算术函数数据类型转换castconvert时间日期函数统计标准偏差 stev()例:显示所有职工的工资标准差select *,stdev(工资) as 工资标准差 from 职工总体标准偏差 stdvp()统计方差 v...原创 2018-08-18 10:33:12 · 9494 阅读 · 0 评论 -
navicat connot open file导入文件错误 MYSQL字符集是utf8,但Navicat是latin1
问题平时写sql使用的是DataGrid,但是没有导入Excel功能,所以一直用Navicat导入excel;而navicat导入excel时却报错:cannot open file ‘xxxxx’ ,不能打开文件,查明原因是字符集不同:excel文件是utf-8,而MySQL默认的是latin1;于是开始了一系列修改mysql默认字符集的历程,修改mysql默认字符集为utf8后,发现na...原创 2019-01-06 23:55:36 · 4379 阅读 · 0 评论