![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
qb170217
这个作者很懒,什么都没留下…
展开
-
mysql case when多条件同时满足的多个and组合嵌套的情况,判断空is null --- 系列二
mysql case when多条件同时满足的多个and组合嵌套的情况,判断空is null --- 系列一 https://blog.csdn.net/qb170217/article/details/81504578方法一:SELECT id, time, type, CASE when (reason is null or reason = '') and type = '驳回...原创 2018-08-09 12:48:50 · 58999 阅读 · 3 评论 -
Mysql中key 、primary key 、unique key 与index区别
索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个表有1000行,这比顺序读取至少快100倍。注意你需要存取几乎所有1000行,它较快的顺序读取,因为此时我们避免磁盘寻道。 所有的...转载 2018-10-30 18:59:32 · 183 阅读 · 0 评论 -
excel大数据量转成insert语句多条或批量插入数据库(数据量为几十万);
多条数据插入数据库(多个Insert into)在B后面的第一列中放入 =CONCATENATE("insert into bankInfo (code, name) values ('",A1,"','",B1,"');"),然后选中第一行下拉拖,拖到最后一行批量插入数据库 (一个insert)在B后面的第一列中放入 =CONCATENATE("('",A1,"','",B1,"');.原创 2018-11-07 17:08:27 · 2410 阅读 · 0 评论 -
Pagehelper 在count时过滤order by,导致返回total不正确
自定义Page<T>import java.util.List;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;public class Page<T> { private List<T> list; private lon...原创 2018-11-08 14:19:10 · 2528 阅读 · 0 评论 -
后语:除了水平切分,数据库架构设计还经常遇到哪些问题
https://blog.csdn.net/liyantianmin/article/details/78277119?utm_source=blogxgwz2不知不觉,数据库水平切分的系列文章已经走过半年,很感谢朋友们一路的陪伴,也感谢gitchat这个平台,能够把自己曾经实践过的水平切分架构方案,梳理总结和沉淀,系统的记录成文字,和大家一起分享。本文是这个专题的最后一讲,在设定这个专题...转载 2018-11-14 10:57:57 · 561 阅读 · 0 评论 -
前言:数据库典型架构实践
本章,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”为例,讲解数据库架构设计的常见玩法。用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, uname, passwd, sex, age, nickname, …)其中: uid为用户ID,主键。 ...转载 2018-11-15 09:42:04 · 239 阅读 · 0 评论 -
从用户中心开始,聊“单KEY”类业务数据库水平切分架构实践
本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分。 水平切分后常见的问题 。 典型问题的优化思路及实践。 一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, login_name, passwd,...转载 2018-11-15 09:43:19 · 221 阅读 · 0 评论 -
从帖子中心开始,聊“1对多”类业务数据库水平切分架构实践
本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、什么是1对多关系所谓的“1对1”“1对多”“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体时间的映射关系:1对1一个用户只有一个登录名,一个uid...转载 2018-11-15 09:44:16 · 244 阅读 · 0 评论 -
从好友中心开始,聊“多对多”类业务数据库水平切分架构实践
本文将以“好友中心”为例,介绍“多对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。一、什么是多对多关系所谓的“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的关联关系,一个学生可以选修多个课程,一个课程可以被多个学生选修,这里学生与课程时间的关系,就是多对多关系。二、好友中心业务分析好友关系主要分为两类,弱好友关系与强好友...转载 2018-11-15 09:46:02 · 170 阅读 · 0 评论 -
从订单中心开始,聊“多KEY”类业务数据库水平切分架构实践
不知不觉,水平切分系列文章已经和大家相伴走过半年,介绍了“单key”,“一对多”,“多对多”等不同业务场景下,水平切分的方式方法与最佳实践。本篇讲义将以“订单中心”为例,介绍“多key”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。一、什么是“多key”类业务所谓的“多key”,是指一条元数据中,有多个属性上存在前台在线查询需求。订单中心业务分析...转载 2018-11-15 09:51:45 · 216 阅读 · 0 评论 -
实际项目中分布式ID生成算法
一、需求缘起几乎所有的业务系统,都有生成一个记录标识的需求,例如:(1)消息标识:message-id(2)订单标识:order-id(3)帖子标识:tiezi-id这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。 这个记录标识上的查询,往往又有分页或者排序的业务需求,例如:(1)拉取最新的...转载 2018-11-15 09:54:42 · 215 阅读 · 0 评论 -
架构-水平切分架构之基因法
业务:查询用户的所有帖子、查询帖子详情。字段:用户ID、帖子ID。普通水平切分: 根据帖子ID切分则无法一次查询用户的所有帖子; 根据用户ID切分则需要先查帖子所属用户;什么是分库基因? 通过uid分库,假设分为16个库,采用uid%16的方式来进行数据库路由,这里的uid%16,其本质是uid的最后4个bit决定这行数据落在哪个库上,这4个bit,就是分库基因。什么是...转载 2018-11-15 09:55:39 · 1875 阅读 · 0 评论 -
一分钟掌握数据库垂直拆分
一、缘起当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表:user(uid bigint,name varchar(16),pass varchar(16),age int,sex tinyint,flag tinyint,sign varchar(64),intro varchar(256)…);...转载 2018-11-15 09:58:14 · 150 阅读 · 0 评论 -
数据库水平切分及问题
简介 前面一篇文章说到,当遇到数据存储层的高并发的时候,会首先想到读写分离,同时高并发有可能意味着数据量大,大量的查询或更新操作集中在一张大表中,锁的频繁使用,会导致访问速度的下降,而且数据量可能超过了单机的容量,所以我们想到了分库分表。 但是在分库分表之前,我还是想多说几句,除非使用那些透明的分库分表方案,否则分库分表是一个大工程。 所以在分库分表前,我建议尽可能先升级数据库...转载 2018-11-15 09:58:34 · 359 阅读 · 0 评论 -
mysql 只取当天数据,昨天数据,前天及其之前的数据
1. 当天数据 to_days(wf.Fcreate_time) = to_days(now()) Fcreate_time >= DATE_FORMAT(NOW(),'%Y-%m-%d'2. 昨天数据 TO_DAYS( NOW( )) - TO_DAYS( wf.Fcreate_time) = 1 3. 前天数据及其前天之前的数据 TO_DAYS( NO...原创 2018-10-24 09:41:56 · 6445 阅读 · 0 评论 -
mysql 查询记录太长,分行显示
mysql 把查询结果多行用逗号分隔组成一列-- 串联多行idSELECT GROUP_CONCAT(cast(`id` as char(10)) SEPARATOR ',') as id from project用了 replace(content, ";" , char(13)) 只是把字段中的;去除了, 分行显示换行符:CHAR(10)回车符:CHAR(13)获取行号...原创 2018-09-27 19:59:30 · 7311 阅读 · 0 评论 -
MySQL 模糊查询某字段用逗号隔开
1. 查找pnum字段中包含3或者9的记录SELECT * FROM test WHERE find_in_set('3',pnum) OR find_in_set('9',pnum);SELECT * FROM test WHERE CONCAT(',',pnum,',') REGEXP '[^0-9]+[3|9][^0-9]+'; 2. cover字段为:(admin/LUpiEMD...原创 2018-08-09 18:10:59 · 4105 阅读 · 0 评论 -
MYSQL使用mysqldump导出某个表的部分数据
MySQLdump是MySQL自带的导出数据工具,通常我们用它来导出MySQL中,但是有时候我们需要导出MySQL数据库中某个表的部分数据,这时该怎么办呢?mysqldump命令中带有一个 --where/-w 参数,它用来设定数据导出的条件,使用方式和SQL查询命令中中的where基本上相同,有了它,我们就可以从数据库中导出你需要的那部分数据了。命令格式如下:mysqldump -u用户名...转载 2018-08-06 15:17:34 · 3102 阅读 · 0 评论 -
Navicat导出指定查询条件的数据
因为想做一个省-市-县-镇-村的行政区划的五级联动,所以就在网上找了一个mysql的数据库脚本,可是我只需要我们省的数据,所有就需要把数据过滤一下。在导入了原始数据以后,新建一个查询-输入查询条件-点击导出。 选择导出格式 选择路径和名称,在高级的地方可以选择导出的sql的编码,后边就可以直接下一步了 ...转载 2018-08-06 15:30:40 · 6105 阅读 · 0 评论 -
mysql case when多条件同时满足的多个and组合嵌套的情况,判断空is null --- 系列一
mysql case when多条件同时满足的多个and组合嵌套的情况,判断空is null --- 系列二https://blog.csdn.net/qb170217/article/details/81534399case when不支持下面2这种写法(我已经测试过了,大侠如有好办法,麻烦分享):情况1:未加括号select wf.fid id,CASE WHEN wf...原创 2018-08-08 11:13:30 · 59890 阅读 · 3 评论 -
mysql查询更新时的锁表机制分析
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking...原创 2018-08-08 16:40:38 · 155 阅读 · 0 评论 -
CentOS下的Mysql的安装和使用
1.使用安装命令 :yum -y install mysql mysql-server mysql-devel安装完成却发现Myserver安装缺失,在网上找原因,原来是因为CentOS 7上把MySQL从默认软件列表中移除了,用MariaDB来代替,所以这导致我们必须要去官网上进行下载,找到链接,用wget打开:a: #wget http://dev.mysql.com/get/m...原创 2018-08-27 10:10:22 · 774 阅读 · 0 评论 -
CentOS重置Mysql密码
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全 状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线...原创 2018-08-27 10:30:43 · 923 阅读 · 0 评论 -
在阿里云服务器或者vultr上安装mysql, 并且运用navicat链接服务器上面的mysql
1:阿里云服务器上安装mysql wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm(下载rpm包) rpm -Uvh mysql57-community-release-el7-11.noarch.rpm yum install mysql-community-se...原创 2018-08-27 11:10:14 · 1056 阅读 · 0 评论 -
用Navicat连接数据库详解
一般我们在本地连接远程数据库可以使用Navicat进行连接因为Navicat自带SSH我们可以通过SSH进行连接此方法步骤简单方法一:用Navicat自带的SSH进行连接1.首先我们在Navicat中新建连接在用户名中填写远程数据库的登录用户名,密码框中填写MySQL登录密码2.我们进入SSH连接配置我们在主机名过IP地址一栏写上我们的远程服务器的IP用户名为我们远程服...原创 2018-08-27 11:11:21 · 3623 阅读 · 0 评论 -
centos下完全卸载mysql
yum方式安装的mysql 1、yum remove mysql mysql-server mysql-libs compat-mysql512、rm -rf /var/lib/mysql3、rm /etc/my.cnf 查看是否还有mysql软件:rpm -qa|grep mysql如果存在的话,继续删除即可。 rpm方式安装的mysql a)...原创 2018-08-27 11:12:18 · 224 阅读 · 0 评论 -
Mybatis关联查询 一对多和多对一
一对多的第一种写法首先是有两张表(学生表Student和老师Teacher表),为了更易懂,这里只设置了最简单的几个必要字段。表结构如下图Student表:Teacher表:创建实体beanTeacher.java:public class Teacher { private Integer id; private String name; private ...原创 2018-09-21 10:02:22 · 1632 阅读 · 1 评论 -
MySQL分组,并且组内再排序
需求:按照类别category_id分组,并对每个分类按时间date排序注意:group by 分组后只取每组的第一条数据,这不符合要求,分组后,要求每组的数据不减少数据库: sql:SELECT a.*, count(1) AS rankFROM test aLEFT JOIN test b ON a.category_id = b.category_i...原创 2018-09-22 19:27:23 · 60574 阅读 · 13 评论 -
JAVA互联网架构分库分表分布式下如何实现ID全局唯一性
分库分表: 跨库的问题 分布式事务问题 查询数据结果集合并 全局唯一性ID保证 要求: 1、全局唯一性:不能出现重复的id号(基本的要求)。 2、信息安全:防止恶意用户规矩id的规则来获取数据。混淆效果 3、数据递增:保证我下一个ID一定大于上一个ID. 当前201709122030 下一个:201709122031 下...转载 2018-11-15 10:04:26 · 569 阅读 · 0 评论