![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MYSQL
文章平均质量分 94
延陵缥缈
这个作者很懒,什么都没留下…
展开
-
分库分表:中间件方案对比
背景分库分表这个词相信很多人都不陌生,在互联网公司数据到达一定规模的时候,多数都会对数据进行分库分表,或者也有人叫分片,英文翻译为Sharding;更加准确来说我们常常关心的是水平分片,即单个业务的某些表到达一定规模后,即使建立索引也无法从根本上带来很大的性能提升,这时我们会考虑把单表拆分。以MySQL为例,B+树索引的深度会随着记录的增多而逐渐加深,根据索引查询的开销也会越来越大,而单表拆分成多个表之后,B+树深度降低,每个单表独立查询的速度也会加快,如果同时还分库的话,并且在不同的实例上转载 2021-02-23 21:35:54 · 448 阅读 · 0 评论 -
java流水单号生成
在开发中几乎所用的系统都会涉及到唯一单号的生成,通常分为两种:一种是有序的生成带有一定规则的单号,另一种是无序的随机生成唯一的单号。这里主要是介绍怎么才能在不同场景下生成有序带有一定规则的单号。1.synchronized同步获取单号创建一个表来存储单号,使用唯一索引确保获得的每一个单号都是唯一的。CREATE TABLE `generate_no` ( `tid...原创 2019-07-25 20:40:55 · 3748 阅读 · 1 评论 -
数据库中间件Mycat+SpringBoot完成分库分表
1.背景随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。当用户表达到千万级别,在做很多操作的时候都会很吃力,所以当数据增长到1000万以上就需要分库分表来缓解单库(表)的压力。2.什么是分库分表简单来说,就是指...转载 2019-03-21 23:02:01 · 1362 阅读 · 0 评论 -
SentOS7环境yum命令安装Mysql5.7
http://note.youdao.com/noteshare?id=0c3c5acaa960bb65f3429bb1f228bd95&sub=886DAEC7EA764FEF8EE6DE4E9B52683E原创 2018-10-11 16:08:28 · 525 阅读 · 0 评论 -
MySQL中Explain用法和结果分析
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:explain select … from … [where …]例如:explain select * from sc;输出:下面对各个属性进行...原创 2018-08-23 21:36:22 · 692 阅读 · 0 评论 -
mysql 索引简介
索引是在存储引擎由于快速查找记录的一种数据结构。 索引有很多种类型,可以为不同的场景提供更好的性能。在Mysql中,索引是在存储引擎层而不是在服务器层实现的。所以没有统一的索引标准:不同存储引擎的索引的工作方式并不是一样的,也不是所有的存储引擎都支持所有类型的索引。即使多个存储引擎都支持同一种类型索引,底层实现也不一定是相同的。1.Hash索引MySQL中,只有Mem...原创 2018-06-05 21:23:51 · 265 阅读 · 0 评论 -
mybatis + Mysql 批量update数据
在实际项目开发中经常出现需要批量更新数据的问题,由于批量更新存在多种方式(比如先查询,再删除,之后批量插入),这里我们就只讨论update语句的方式。1. 条件不同,修改结果相同例如:根据id来更新多条数据的状态public interface Mapper { void batchUpdate(@Param("list") List<Integer> li...原创 2018-05-07 17:05:20 · 518 阅读 · 0 评论 -
mysql SQL优化方案
网上关于SQL优化方案有很多,并且有些方案之间有冲突,所以自己测试、整理了一些sql的优化信息。1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where nu...原创 2019-10-11 11:12:59 · 168 阅读 · 0 评论 -
mysql 多表联合更新
在实际工作中我们经常碰到一些业务要更新多张有关联的表数据,如果单独更新每张表,不仅降低效率而且容易出错,所以在mysql 4.0.4 开始支持多个表的update操作。 假设有两张表 table1 、table2 关联关系为 table1.t2_id = table2.t1_id。1. 将table1 中价格更新为table2价格的80%。UPDATE table1 ...原创 2018-05-04 10:00:39 · 892 阅读 · 0 评论 -
SpringBoot定时任务
定时任务一般是项目中都需要用到的,可以用于定时处理一些特殊的任务,比如定时发送短信,邮件等等。今天我们就来看下在SpringBoot中如何集成定时任务。 首先,搭建好一个springboot项目,可使用maven或者gradle或者其他。由于这里讲的是主要是定时任务,没有搭建过springboot项目的可以参考https://blog.csdn.net/qq_3499...原创 2018-04-02 23:48:20 · 1386 阅读 · 0 评论 -
mysql 的多表关联删除
在项目中经常会碰到多层表结构的设计,当碰到删除的时候如果单个表逐一删除,不仅牺牲效率还容易出错。所以在mysql 4.0 推出了 跨表 delete 功能,简单的说就是 可以在一个SQL里面对多张表的指定一条数据或多条数据进行删除。现有 table1 和 table2 两张表,他们的外键是ID, 不说了直接上SQL。delete table1.*, table2.* fro原创 2017-12-25 21:46:07 · 719 阅读 · 0 评论 -
mysql 临时表的基本使用
在工作中进行开发测试,你可能只需要少数数据不是对整个表运行这些查询或者不希望测试产生垃圾数据,将记录选择到一个临时表可能更快些,也减少垃圾数据的产生,然后在这些表运行查询。创建临时表SQL和正常表创建有一点区别,主要在正常SQL CREATE TABLE语句加上TEMPORARY关键字:CREATE TEMPORARY TABLE tmp_table ( duanl VARCH原创 2017-10-23 16:26:42 · 522 阅读 · 0 评论 -
INSERT INTO SELECT 表复制语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1或者:Insert into Table2 select * from Table1注意事项:(1)要求目标表Table2必须存在,并且字段field,field2...也必须存在(2)注意Table2的主键约束,如果Table原创 2017-09-28 00:34:41 · 343 阅读 · 0 评论 -
Mysql时间函数
Mysql时间函数1.直接将时间转换成字符串 常用的: %Y:年(四位字符yyyy) %y:年(两位字符yy) %m:月 %d:日 %H:小时(24小时制) %h:小时(12小时制) %i:分钟 %s:秒 1.1转出格式:yy/MM/ddselect date_format(DATE,'%y/%m/%d')from table1.2转出格式:yyyy/MM/dd原创 2017-07-25 10:29:43 · 365 阅读 · 0 评论