摘要:前言: 方法1 直接使用数据库提供的SQL语句。 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N。 适应场景: 适用于数据量较少的情况(元组百/千级)。 原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的
阅读全文
随笔分类 - MySQL
摘要:一、like(完全模糊,即“like '%val%'”) 实例:查询用户名称中包含“王”值的用户信息,如下: QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.like("name", "王"); // 等价 SQL 语句:
阅读全文
摘要:一、直接上SQL select dept_id from ( select t1.dept_id,t1.parent_id, if(find_in_set(parent_id, @pids) > 0, @pids := concat(@pids, ',', dept_id), 0) as ischi
阅读全文
摘要:一、业务场景 业务需要根据一个子节点查询出根节点的信息。做无限分类经常用到。 二、表结构 CREATE TABLE `t_busi_system` ( `ID` varchar(64) NOT NULL COMMENT '标识', `PARENT_ID` varchar(64) DEFAULT NU
阅读全文
摘要:一、为什么要分库分表? 分库分表是两回事儿,可能是光分库不分表,也可能是光分表不分库,都有可能。 分表是啥意思?就是把一个表的数据放到多个表中,然后查询的时候你就查一个表。比如按照用户id来分表,将一个用户的数据就放在一个表中。然后操作的时候你对一个用户就操作那个表就好了。这样可以控制每个表的数据量
阅读全文
摘要:一、背景 在做电商项目时,会遇到这样的一种情况,mysql数据库中商品表tb_product里面有个字段type,它存储的是商品类型,比如: 1:热门推荐; 2:精选推荐; 3:品牌商品等。 有些商品既属于热门推荐,也属于精选推荐,同时还是品牌商品,系统中type中用 1,2,3 这样的格式存储。
阅读全文
摘要:一.优化概述 1、为什么要优化? (1)系统的吞吐量瓶颈往往出现在数据库的访问速度上; (2)随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢; (3)数据是存放在磁盘上的,读写速度无法和内存相比; 2、如何优化? 查询速度优化、数据库结构优化、MYSQL服务器优化 原则是减少系统
阅读全文
摘要:一.介绍 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。 索引优化应该是对查询性能优化最有
阅读全文
摘要:一.概念 sharding-jdbc是当当网开源的一款客户端代理中间价。sharding-jdbc包含分库分片和读写分离功能。 对应用的代码没有侵入型,几乎没有任何改动,兼容主流orm框架,主流数据库连接池。目前属于apache的孵化项目shardingSphere,发展迅猛。sharding-jd
阅读全文
摘要:一.Mycat简介 这个中间件可以说是很奇妙的东西,可以让数据库的负载能力提高很多。 使用mycat后,可以对数据库进行分库,分表。把一个逻辑完整的数据库分成物理拆分的数据库。 Mycat背后是阿里曾经开源的知名产品——Cobar。Cobar的核心功能和优势是MySQL数据库分片, 此产品曾经广为流
阅读全文
摘要:一.概念 MySQL是一个开放源代码的关系数据库管理系统。原开发者为瑞典的MySQL AB公司,最早是在2001年MySQL3.23进入到管理员的视野并在之后获得广泛的应用。 2008年MySQL公司被Sun公司收购并发布了首个收购之后的版本MySQL5.1,该版本引入分区、基于行复制以及plugi
阅读全文
摘要:一. 关联查询执行流程 总的来说,mysql认为任何一个查询都是一次关联,并不仅仅是一个查询需要用到两个表匹配才叫关联。 所以,在mysql中,每一个查询,每一个片段(包括子查询,甚至单表select)都可能是关联。 所以,理解mysql如何执行关联查询至关重要,先来看一个union的例子,对于un
阅读全文
摘要:前言: limit:基础用法:limit 的用法是 limit [offset], [rows],其中 offset 表示偏移值, rows 表示需要返回的数据行。 问题: mysql 的 limit 给分页带来了极大的方便,但数据偏移量一大,limit 的性能就急剧下降。 以下是两条查询语句,都是
阅读全文
摘要:一.概述 简单来说 MySQL 主要分为 Server 层和存储引擎层: 1、Server 层: 主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog 日志模块。 2、存储引擎: 主要负责数
阅读全文
摘要:一.需求 一般业界,对订单数据的分库分表,有两类思路:按照订单号来切分、按照用户id来切分。 二.按照订单号来做 hash分散订单数据 把订单号看作是一个字符串,做 hash,分散到多个服务器去。 具体到哪个库、哪个表存储数据呢?订单号里面的数字来记录着。 如果要查询某用户的所有订单呢? 由于是根据
阅读全文
摘要:需求: 1、将其设计成一张表 DROP TABLE IF EXISTS `system_district`; CREATE TABLE `system_district` ( `district_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMM
阅读全文
摘要:一.字符集 一般选择utf8.下面介绍一下utf8与utfmb4的区别。 utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了,unicode编码区从1 ~ 126就属于传统utf8区, 当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什
阅读全文
摘要:需求: 1、原始数据 2、处理结果演示 3、对应的sql语句 SELECT a.id, a. NAME, substring_index( substring_index( a.shareholder, ',', b.help_topic_id + 1 ), ',' ,- 1 ) AS shareh
阅读全文
摘要:需求: 举例: 存在一个用户来源表,用来标记用户从哪个渠道注册进来。 表结构如下: 其中 origin 是用户来源,其中的值有 iPhone 、Android 、Web 三种,现在需要分别统计由这三种渠道注册的用户数量。 解决方案一: SELECT COUNT(*) FROM user_operat
阅读全文