数据库
文章平均质量分 77
徐刘根
微信关注公众号:Java后端技术(ID:JavaITWork),和20万人一起学习Java!
"Java后端技术"微信公众号专注Java相关技术:SSM、Spring全家桶、微服务、MySQL、MyCat、集群、分布式、中间件、Linux、网络、多线程,偶尔讲点运维Jenkins、Nexus、Docker、ELK,偶尔分享些技术干货,致力于Java全栈开发!
展开
-
面试题:InnoDB中一棵B+树能存多少行数据?
作者:李平原文地址:www.cnblogs.com/leefreeman/p/8315844.html一、InnoDB一棵B+树可以存放多少行数据?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这...转载 2019-05-30 12:44:29 · 2629 阅读 · 0 评论 -
使用Spring AOP实现MySQL数据库读写分离案例分析
一、前言分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。在进行数据库读写分离的时候,我们首先要进行数据库的主从配置,最简单的是一台Master和一台Slave(大型网站系统的话,当然会很复杂,这里只是分析了最简单的情况)。通过主从配置主从数据库保持了相同的数据,我们在进行读操作的时候访问从数据库Slave,在原创 2016-12-29 19:15:43 · 26124 阅读 · 8 评论 -
数据库分库分表策略的具体实现方案
相关文章:1、 使用Spring AOP实现MySQL数据库读写分离案例分析2、MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解3、MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结4、使用mysqlreplicate命令快速搭建 Mysql 主从复制5、大型网站应用之海量数据和高并发解决方案总结一二一、MySQL扩展具体的实...原创 2017-01-02 14:10:03 · 91113 阅读 · 26 评论 -
MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结
一、主从复制搭建方法参考1、MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解请参考: http://blog.csdn.net/xlgen157387/article/details/51331244#comments2、使用mysqlreplicate命令快速搭建 Mysql 主从复制: http://blog.csdn.net/xlgen157387/articl原创 2016-09-06 18:14:17 · 12936 阅读 · 3 评论 -
使用mysqlreplicate命令快速搭建 Mysql 主从复制
MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少。(可参考:http://blog.csdn.net/xlgen157387/article/details/513312转载 2016-09-06 18:26:37 · 10634 阅读 · 2 评论 -
MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
安装环境操作系统 :CentOS 6.5 数据库版本:MySQL 5.6.27主机A:192.168.1.1 (Master)主机B:192.168.1.2 (Slave)这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的。 本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望大家不要采坑。注:这里有一篇CentOS安装MySQL的文章,在这里引出,过程亲测,原创 2016-05-06 17:59:14 · 163185 阅读 · 60 评论 -
探索数据库的事务隔离级别
要了解事务的隔离级别,推荐您从以下三个步骤来了解。事务的基本要素先简单复习一下事务的四个基本要素:ACID原子性:整个事务中的操作,要么全部完成, 要么全部不完成(全部撤销)。一致性:事务开始之前和结束之后,数据库的完整性没有遭到破坏。隔离性:在同一时间,只允许一个事务请求同一数据。持久性:事务完成以后,该事务对数据库所做的操作持久化在数据库中,并不会被回滚。事务中经常出现的并发问题分析几转载 2016-04-25 10:37:03 · 4609 阅读 · 1 评论 -
Mysql性能优化案例研究 - 覆盖索引和SQL_NO_CACHE
场景产品中有一张图片表pics,数据量将近100万条,有一条相关的查询语句,由于执行频次较高,想针对此语句进行优化表结构很简单,主要字段:user_id 用户IDpicname 图片名称smallimg 小图名称一个用户会有多条图片记录,现在有一个根据user_id建立的索引:uid,查询语句也很简单:取得某用户的图片集合:select picname, smallimg from pics w原创 2016-02-29 20:30:57 · 6034 阅读 · 0 评论 -
腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题
背景:今天才申请了腾讯云+校园计划的1元服务器,(http://www.qcloud.com/event/qcloudSchool)安装了Centos7.0,在安装mysql的时候,使用yum list | grep mysql 来查找yum源中是否有mysql,结果如下:[root@VM_47_56_centos ~]# yum list | grep mysqlakonadi-mysql.x8原创 2015-11-21 15:14:12 · 21961 阅读 · 12 评论 -
19个MySQL性能优化要点解析
以下就是跟大家分享的19个MySQL性能优化主要要点,一起学习学习。1、为查询优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些转载 2016-02-25 10:49:08 · 8466 阅读 · 3 评论 -
MySQL批量SQL插入各种性能优化
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。 经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。1、一条SQL语句插入多条数据。常用的插入语句如:INSERT INTO `insert_tab转载 2016-03-21 20:35:28 · 9482 阅读 · 3 评论 -
MySQL 清除表空间碎片
碎片产生的原因(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大;(2)当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片;(3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写原创 2016-02-24 11:24:21 · 15996 阅读 · 5 评论 -
MySQL半同步复制原理配置与介绍
环境介绍:Ubuntu Server 16.04.2+MySQL 5.7.17 Community Server (GPL)MySQL安装通过APT的方式安装,官方指导文档地址: https://dev.mysql.com/downloads/repo/apt/1、下载mysql-apt-config_0.8.3-1_all.deb2、安装debA Quick Guide to Using t原创 2017-04-06 19:21:52 · 16549 阅读 · 2 评论 -
MySQL存储引擎MyISAM与InnoDB区别总结整理
1、MySQL默认存储引擎的变迁在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。2、MyISAM与InnoDB存储引擎的主要特点MyISAM存储引擎的特点是:表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心;以下是MySQL 5MySQL存储原创 2017-04-03 20:28:19 · 26384 阅读 · 2 评论 -
10款常见MySQL高可用方案选型解读
作者介绍:王松磊,现任职于UCloud,从事MySQL数据库内核研发工作。主要负责UCloud云数据库udb的内核故障排查工作以及数据库新特性的研发工作。原文链接:https://yq.aliyun.com/articles/80365一、概述我们在考虑MySQL数据库的高可用架构时,主要考虑如下几方面:如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减...转载 2019-04-08 17:59:49 · 3901 阅读 · 0 评论 -
分布式之数据库和缓存双写一致性方案解析!
作者:孤独烟出处:http://rjzheng.cnblogs.com一、为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作:但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存?又或者是先删除缓存,再更新数据库?其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进...转载 2018-05-21 10:55:36 · 12629 阅读 · 11 评论 -
慢SQL!压垮团队的最后一根稻草!
来源 | 公众号 | 一名叫大蕉的程序员 | 作者 | 杨钊原文地址:https://mp.weixin.qq.com/s/62fTZoAU_ThqA50v9iY1TQ 先说结论,我支持将逻辑写在Java等应用系统中!背景:今天只讨论一种应用模式,就是最普遍的,前端实时调用后端Web服务,服务端经过DB的增删改查作出响应的应用。至于离线数据分析,在线规则引擎模板执行,流式计...转载 2018-05-21 11:15:58 · 14230 阅读 · 7 评论 -
为什么MySQL数据库索引选择使用B+树?
在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出B树以及为什么MySQL数据库索引选择使用B+树!学过数据结构的一般对最基础的树都有所认识,因此我们就从与我们主题更为相近的二叉查找树开始。一、二叉查找树(1)二叉树简介:二叉查找树也称为有序二叉查找树,满足二叉查找树的...原创 2018-03-05 21:19:57 · 33457 阅读 · 9 评论 -
为什么你创建的数据库索引没有生效,索引失效的条件!
几乎所有的小伙伴都可以随口说几句关于创建索引的优缺点,也知道什么时候创建索引能够提高我们的查询性能,什么时候索引会更新,但是你有没有注意到,即使你设置了索引,有些时候索引他是不会生效的!这不仅考察了大家对索引的了解程度,还要让大家在使用的时候能够正确的使用。以下介绍了一些可能会造成索引失效的特殊情况,希望大家在平时开发和面试的时候能够注意到!一、如何判断数据库索引是否生效首先在接着探讨...原创 2018-03-15 21:01:51 · 25257 阅读 · 3 评论 -
带你发现新大陆!什么是图数据库以及简单入门!
一、关系型数据库的不适性在众多不同的数据模型里,关系数据模型自20世纪80年代就处于统治地位,而且出现了不少巨头,如Oracle、MySQL,它们也被称为:关系数据库管理系统(RDBMS)。然而,随着关系数据库使用范围的不断扩大,也暴露出一些它始终无法解决问题,其中最主要的是数据建模中的一些缺陷和问题,以及在大数据量和多服务器之上进行水平伸缩的限制。同时,互联网发展也产生了一些新的趋势变化:原创 2018-01-17 21:16:24 · 80761 阅读 · 12 评论 -
Linux下MySQL出现乱码的解决方法以及如何设置编码方式
开发环境Cent OS 7.0; MySQL:Server version: 5.6.33 MySQL Community Server (GPL)最新版:Server version: 5.7.19 MySQL Community Server (GPL) 请看最后补充内容!!!注意版本,不同版本之间修改的方式是会略有不同!!!错误重现首先我已经确保了前端界面传入到后台服务器的编码没有问题!To原创 2016-10-10 21:44:37 · 13980 阅读 · 3 评论 -
大型分布式数据库中间件MyCat的安装与使用
官网资料MyCat官网:http://www.mycat.io/MyCat权威指南:http://www.mycat.io/document/Mycat_V1.6.0.pdfMyCat下载地址:http://dl.mycat.io/MyCat下载下载之后解压为如下:MySQL环境搭建1、MySQL主机地址:192.168.1.235、192.168.1.2372、192.168.1.235、192.原创 2017-08-25 20:19:55 · 8086 阅读 · 2 评论 -
MySQL必知必会知识点总结一二
一、MySQL官方文档地址https://dev.mysql.com/doc/refman/5.7/en/二、MySQL常用命令1、如何登陆mysql数据库mysql -u username -p1.1、指定IP、端口mysql -uroot -h 192.168.1.213 -P3306 -p123456-P(大写):指定端口; -p(小写):指定密码;...原创 2017-06-24 17:10:57 · 33157 阅读 · 1 评论 -
MySQL日志文件之错误日志和慢查询日志详解
实验环境:MySQL Community Server (GPL) 5.7.17、Ubuntu 16.04一、MySQL日志文件分类官方文档:https://dev.mysql.com/doc/refman/5.7/en/server-logs.html常见的日志有以下几个:1、错误日志(error log); 2、慢查询日志(slow query log); 3、二进制日志(binlog);原创 2017-07-24 22:20:13 · 17197 阅读 · 2 评论 -
Druid连接池自定义数据库密码加解密的实现
Druid的功能1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource原创 2016-04-27 15:08:00 · 36855 阅读 · 5 评论 -
MySQL执行状态分析
当感觉mysql性能出现问题时,通常会先看下当前mysql的执行状态,使用 show processlist 来查看,例如:其中state状态列信息非常重要,先看下各列含义,然后看下state常用状态各列的含义1、id一个标识,你要kill一个语句的时候使用,例如 mysql> kill 207;2、user显示当前用户,如果不是root,这个命令就只显示你权限范围内的sql语句3、host显示这个原创 2016-01-27 21:23:57 · 3437 阅读 · 2 评论 -
数据库语言分类DDL DCL DML 知多少?
DML(Data Manipulation Language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(Data Definition Language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TA转载 2015-09-12 13:04:41 · 4119 阅读 · 0 评论 -
【数据库学习笔记】(4)JDBC数据源和连接池
原创 2014-09-15 14:30:29 · 1731 阅读 · 0 评论 -
【数据库学习笔记】(3)SQL数据类型与Java数据类型的对应关系
原创 2014-09-15 14:25:46 · 1706 阅读 · 0 评论 -
【数据库学习笔记】(2)JDBC加载并注册数据库驱动并连接数据库
原创 2014-09-15 14:20:59 · 2359 阅读 · 0 评论 -
【数据库学习笔记】(1)JDBC驱动程序的分类
原创 2014-09-15 14:10:20 · 1566 阅读 · 0 评论 -
sql server 2008如何导入mdf,ldf文件
sql server 2008如何导入mdf,ldf文件 网上找了很多解决sql server导入其他电脑拷过来的mdf文件,多数是不全,遇到的解决方法不一样等问题,下边是找到的解决问题的最全面方法!将mdf, ldf文件导入到sql server 2008数据库当中,下面提供两种办法:第一种:(1)选择右击数据库(2)然后点原创 2014-08-26 11:03:43 · 27883 阅读 · 9 评论 -
JDBC连接池技术
一.连接池技术(1)Java语言通过JDBC技术访问数据库的基本过程是:1.加载数据库驱动程序;2.通过JDBC建立数据库连接;3.访问数据库,执行SQL语句;4.断开数据库连接。(2)在Web应用程序开发中,使用这种模式访问数据库时,存在很多问题,为了解决这些问题,可以采用数据库连接池技术。连接池实际上是在一个集合对象中存储一定数量的数据库连接对象。当程序需要原创 2014-09-20 14:19:00 · 3293 阅读 · 0 评论 -
数据库与Excel报表的动态生成
一.数据库与Excel报表的动态生成(1)读取数据库的数据动态生成Excel报表,这是JSP应用中常遇到的问题,本节采用的基本方法是:在Excel工作薄中,将报表模板制作在第一张工作表中,从数据库中读取数据,利用POI组件复制模板工作表而得到一张新的工作表,将查询数据填写到新的工作表中。 (2) 实例分析写一个Servlet程序,查询pubs数据库的titles表和sales表原创 2014-09-20 14:00:08 · 3567 阅读 · 0 评论 -
JDBC事务处理
一、JDBC事务(1)事务是作为单个逻辑工作单元执行的一系列操作。(2)事务维护了数据的完整性、正确语义、持久性。事务中的所有SQL语句必须被成功执行,则事务才会对数据库产生持久性的影响,如果事务中的第n条语句执行出错,表示事务运行失败,则前面的n-1条语句对数据库产生的影响可以撤销(回滚)到事务执行前的初始状态或出错点之前的某个正确状态。 (3)JDBC在默认情况下,原创 2014-09-20 13:47:48 · 3378 阅读 · 0 评论 -
JDBC存储过程的调用
一. JDBC存储过程的调用(1)存储过程是用SQL语句和控制流语句等编写的一段程序代码,在创建时已被编译成机器代码并存储在数据库中供客户端调用。存储过程有以下优点: 1.所生成的机器代码被永久存储在数据库中,客户端调用时不需要重新编译,执行起来效率要高一些。 2.存储过程的网络使用效率比等效的SQL 语句要高。(2)JDBC通过java.sql.CallableStateme原创 2014-09-19 12:38:53 · 4906 阅读 · 1 评论 -
Myeclipse10.7连接SQL Server数据库技术
(1)学习数据库的时候最恼火的是不知道怎么连接,不想VS那样在WPF中我们直接使用函数即可调用数据库,但是在java中我们要使用JDBC技术,因此我们的方法肯定要复杂一些!看了很多博客明文,试了很多方法还是不成功,最后看了《JavaWeb技术详解》恍然大悟,特给大家分享一下!(2)首先看一下我的项目机构:其中带有标出来的就是需要准备的;lib目录下的为jar包网上下载的;Man原创 2014-09-04 17:28:00 · 4968 阅读 · 3 评论 -
解决mysql无法插入中文数据及插入后显示乱码的问题【亲测 图文解说!】
(1)废话不多说就是使用mysql数据库的时候无法输入中文,可以输入中文后显示的又是乱码!!(2)不说了!开始解决问题!第一步:找到安装mysql的目录找到 my.ini 文件;第二步:使用记事本打开my.ini文件 ,找到这个地方 看看default-character-set 是不是 utf8不是的话 改为utf8即可!(以前的版本可能没有这句话 直接加上就好了!原创 2014-10-05 13:06:06 · 15940 阅读 · 6 评论 -
Myeclipse链接Oracle等数据库时lo exception: The Network Adapter could not establish the connection
(1)最近真是郁闷,在Myeclipse中使用DB Browser但老师出现以下问题:(2)然后赶紧百度,求大神解决,主要的解决方法试一下几种:(这几种方法网上都有不做解释)1)修改myeclipse中的en改为zn;2)修改计算机语言改为中文;3)修改oracle--network--admin目录下的listener.ora和tnsnames.ora文件 ,把ip设置为原创 2014-11-29 14:38:51 · 4462 阅读 · 0 评论 -
MySQL开发规范与使用技巧总结
1.命名规范1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。 b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。 c)字段名显示区原创 2015-08-29 13:13:36 · 10703 阅读 · 4 评论