-
优化MySQL排序性能需从四方面入手。一、建立合适索引,如为常用排序字段建索引、使用联合索引并保持顺序一致,并注意索引方向与排序方向匹配;二、避免不必要的排序,检查是否业务真正需要,或通过数据写入时预排序、调整查询逻辑来规避;三、控制排序数据量,结合WHERE条件过滤、避免大偏移分页,改用游标分页方式;四、调整系统参数,如增大sort_buffer_size提升内存排序效率,合理设置max_length_for_sort_data影响排序方式,关注临时表空间配置。
-
HAVING和WHERE的区别在于作用时机和场景:1.WHERE在分组前筛选行,用于过滤原始数据,如筛选工资>5000的员工;2.HAVING在分组后筛选结果,用于过滤聚合结果,如保留员工数>5的部门;3.两者可同时使用,如先筛选工资>5000的员工,再保留平均工资>8000的部门;4.不能在WHERE中使用聚合函数,因为其逐行判断,而聚合计算需基于一组行。
-
数据分片的核心目的是提升数据库读写性能和存储扩展能力。其通过将大表数据分散到多个物理节点实现,常见方式包括应用层逻辑分片、使用中间件做透明分片或数据库引擎的分区功能(注意分区不是分片)。一、水平分片是按行分开放置在不同实例中,例如根据用户ID奇偶划分;优点是简单易懂,缺点是扩容麻烦且易数据倾斜,建议选好分片键避免跨库查询。二、常见分片方案有三种:1.应用层逻辑分片由代码控制路由,灵活但维护成本高;2.使用分片中间件如MyCAT、ShardingSphere实现透明分片,适合中大型项目但增加运维复杂度;3.
-
在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博[1],最新的用户关系,都存储在 Redis 中,大量的查询击中 Redis,而不走 My
-
一、摘要实际的软件项目开发过程中,不可避免的需要用到关系型数据库,比较主流的关系型数据库有 mysql、oracle、sql server、postgresql、db2 等等,当然目前最主流的数据库非 mysql 莫属,相比其
-
mysql的数据类型:数值型、日期/时间、字符串类型 安装mysql:http://down.cuohei.com/ tinyint:小整数,数据类型用于保存一些范围的整数数值范围,MySQL中无布尔值,使用tinyint(1)构造
-
窗口函数形如:表达式 OVER (PARTITION BY 分组字段 ORDER BY 排序字段)有两个能力:当表达式为 SELECT *, rank() over (PARTITION BY city ORDER BY people) FROM test该 SQL 表示在 city 组内按照 people 进行排序。其实 PART
-
这一周线上碰到一个诡异的BUG。线上有个定时任务,这个任务需要查询一个表几天范围内的一些数据做一些处理,每隔十分钟执行一次,直至成功。通过日志发现,从凌晨5:26分开始到5:56任务
-
上篇文章中详细了介绍了一下changelog 文件的使用,本篇文章将详细说一下 changeSet 变更集 中的细节,以及通常的使用方式
1.变更集分类
changeSet 分为 6类:
add
create
drop
rename
sql
other
官方文档:h
-
最近在策划写一个博客采用前后端分离模式,前端使用vue后端使用egg.js,我也是刚开始学习egg.js,所以会将自己踩的坑都记录下来. 首先介绍下后端为什么采用egg.js吧,之前我是学习了koa2的,大部分
-
引子
最近负责的一个消息推送系统要上线了,性能方便要满足两个要求1、对外提供的接口能达到5w条/s的tps。2、查询功能和统计报表在数据量大的情况下要保证速度。
项目环境:linux+tomcat8+mysql
-
开始准备
开始之前我们需要有Redis安装,我们采用本机Docker运行Redis, 主要命令如下
docker pull redis
docker run --name my_redis -d -p 6379:6379 redis
docker exec -it my_redis bash
redis-cli
前面两个命令是启动redis doc
-
1、修改配置文件vim /etc/mysql/my.cnf修改bind-address = 0.0.0.02、授权GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'sjgj2508' WITH GRANT OPTION;FLUSH PRIVILEGES;3、重启mysqlsudo service mysql restart4、修改防火墙规则
-
昨天搞数据库把系统搞挂了,今天花费多半天的时间重装了一下,借此总结一下这几天的学习。挑重点的说。数据库版本 mysql5.5以上常用数据库操作命令create database dataname;create table tablenamei(
-
一、单点Redis的问题
1、数据丢失问题
Redis数据持久化。
2、并发能力问题
大家主从集群,实现读写分离。
3、故障恢复问题
利用Redis哨兵,实现健康检测和自动恢复。
4、存储能力问题
搭建分片