数据库
文章平均质量分 90
自由圣骑士
喜欢学习、喜欢接近新事物。
展开
-
怎样快速插入数据
1.2、实体类、mapper和配置文件定义User实体mapper接口mapper.xml文件jdbc.propertiessqlMapConfig.xml2、MyBatis实现插入30万条数据使用了 MyBatis 的批处理操作,将每 1000 条数据放在一个批次中插入,能够较为有效地提高插入速度。同时请注意在循环插入时要带有合适的等待时间和批处理大小,以防止出现内存占用过高等问题。此外,还需要在配置文件中设置合理的连接池和数据库的参数,以获得更好的性能。在上面的示例中,我们每插入10原创 2024-04-23 16:18:22 · 629 阅读 · 0 评论 -
Ubuntu18.04下安装MySQL
提示:以下操作均在root用户下进行,如在普通用户,请自行加上sudo!查看有没有安装MySQL:dpkg -l | grep mysql安装MySQL:apt install mysql-server安装完成之后可以使用如下命令来检查是否安装成功:netstat -tap | grep mysql通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功。登录mysql数据库可以通过如下命令:mysql -u root -p-u 表示选择登陆原创 2020-07-17 13:49:43 · 1020 阅读 · 0 评论 -
一手好 SQL 是如何炼成的
MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。微信搜索web_resource 关注获取更多推送。博主曾经操作过超过4亿行数据的单表,分页查询最新的20条记录耗时0.6秒,SQL语句大致是se转载 2020-05-10 16:40:17 · 247 阅读 · 0 评论 -
ubuntu18.04编译安装mysql5.6
ubuntu18.04编译安装mysql5.6在执行make之前执行原创 2020-04-16 11:03:43 · 1219 阅读 · 0 评论 -
从磁盘读取数据页到Buffer Pool时,free链表有什么用?
1、数据库启动的时候,是如何初始化Buffer Pool的?现在我们已经搞明白一件事儿了,那就是数据库的Buffer Pool到底长成个什么样,大家想必都是理解了其实说白了,里面就是会包含很多个缓存页,同时每个缓存页还有一个描述数据,也可以叫做是控制数据,但是我个人是比较倾向于叫做描述数据,或者缓存页的元数据,都是可以的。那么在数据库启动的时候,他是如何初始化Buffer Pool的呢?其...转载 2020-02-13 16:05:42 · 303 阅读 · 0 评论 -
从 MySQL 架构设计出发,看它是如何执行一条 SQL 语句的
1、把MySQL当个黑盒子一样执行SQL语句我们的系统采用数据库连接池的方式去并发访问数据库,然后数据库自己其实也会维护一个连接池,其中管理了各种系统跟这台数据库服务器建立的所有连接我们先看下图回顾一下当我们的系统只要能从数据库连接池获取到一个数据库连接之后,我们就可以执行增删改查的SQL语句了从上图其实我们就可以看到,我们可以通过数据库连接把要执行的SQL语句发送给MySQL数据库。...原创 2020-02-01 10:39:02 · 193 阅读 · 0 评论 -
Linux给MySQL创建用户,并分配权限
//登录MYSQL 使用root账号登录@>mysql -u root -p @>密码//创建用户mysql> insert into mysql.user(Host,User,Password) values('localhost','s_root',password('123456'));//刷新系统权限表mysql>flush privileges;这样...原创 2019-11-29 18:49:39 · 264 阅读 · 0 评论 -
数据库的三大范式
一.数据库中的范式:第一范式(1NF):数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。例如: userInfo: ‘山东省烟台市 1318162008’ 依照第一范式必须拆分成userInfo: ‘山东省烟台市’ userTel: '1318162008’两个字段第二范式(2NF):满足1NF后要求表中的所有列,都必需依赖于主键,而不能有 任何一列与主键...原创 2019-08-12 17:50:06 · 314 阅读 · 0 评论 -
分布式事务
事务的概念数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务拥有以下四个特性,习惯上被称为ACID特性:本地事务起初,事务仅限于对单一数据库资源的访问控制:架构服务化以后,事务的概念延伸到了服务中。倘若将一个单一的服务操作作为一个事务,那么整个服务操作只能涉及一个单一的数据库资源:这类基于单个服务单一数据库资源...原创 2019-08-15 16:52:20 · 187 阅读 · 0 评论 -
怎样一步步的随着业务量的增大进行数据库的优化
第一步:采用分布式缓存redis、memcached等降低对数据库的读操作第二步:如果缓存使用过后,数据库访问量还是非常大,可以考虑数据库读、写分离原则。第三步:当我们使用读写分离、缓存后,数据库的压力还是很大的时候,这就需要使用到数据库拆分了。数据库拆分原则:就是指通过某种特定的条件,按照某个维度,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面以达到分散单库(主机)负载的...原创 2019-08-15 11:45:30 · 410 阅读 · 0 评论 -
Mysql的索引原理
mysql的索引的原理索引的目的索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从上往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有字典里的单词看一遍才能找到你想要的mysql单词,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?索引的原理通过不断的缩小想要获得数据...原创 2019-08-14 17:37:05 · 170 阅读 · 0 评论 -
SQL效率提升的优化思路
1、业务场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表:课程表的数据是100条。create table Course(c_id int PRIMARY KEY,name varchar(10))学生表:学生表的数据是70000条create table Student(id int PRIMARY KEY,name varchar(10))...原创 2019-08-19 18:10:09 · 248 阅读 · 0 评论 -
SQL的错误用法与sql相关的优化
sql语句的执行顺序:LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHERE type = 'SQLStats' A...原创 2019-08-09 10:48:42 · 129 阅读 · 0 评论 -
实现数据库中的数据实时同步到redis,ElasticSearch
详细请查看数据库中的数据同步到redis和数据库中的数据同步到es(es基于7.2版本)里面有详细的Readme.md说明,如果有什么问题欢迎留言和建议。该项目模块包括分布式事务的实现、分布式搜索ElasticSearch7.2、数据的实时同步、使用rabbitmq进行消息的订阅与发布,并保证生产端到消息中间件的消息不丢失,消息重发策略,消息中间件到消费端的消息不丢失,死信队列的实现等功能,全...原创 2019-07-29 19:55:43 · 4507 阅读 · 1 评论 -
Redis数据与数据库数据的一致性解决方案
业务场景在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的...原创 2019-08-08 11:53:49 · 809 阅读 · 0 评论