数据库
文章平均质量分 81
bladestone
15年的软件行业开发经验,9年项目管理经验;5年爬虫经验
展开
-
转载:MySQL深度分页的问题及优化方案-千万级数据量如何快速分页
原文链接: https://blog.csdn.net/Carson_Chu/article/details/108445426前言后端开发中为了防止一次性加载太多数据导致内存、磁盘IO都开销过大,经常需要分页展示,这个时候就需要用到MySQL的LIMIT关键字。但你以为LIMIT分页就万事大吉了么,Too young,too simple啊,LIMIT在数据量大的时候极可能造成的一个问题就是深度分页。案例这里我以显示电商订单详情为背景举个例子,新建表如下:CREATE TABLE `cps_us转载 2021-09-06 23:38:44 · 1151 阅读 · 0 评论 -
MySQL explain Type总结
explain在调试优化MySQL中,大家都需要使用explain查看SQL执行计划,其中的字段信息在本文中将逐一详述。基本信息DB: shopping.shool_infoCREATE TABLE `school_info` ( `id` bigint NOT NULL AUTO_INCREMENT, `name` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '学院名称', `student_num` int DEF原创 2021-09-06 23:33:35 · 620 阅读 · 0 评论 -
MySQL 回表 & 索引覆盖
索引类型聚簇索引: 叶子节点存储的是行记录,每个表必须要有至少一个聚簇索引。使用聚簇索引查询会很快,因为可以直接定位到行记录普通索引:二级索引,除聚簇索引外的索引,即非聚簇索引。普通索引叶子节点存储的是主键(聚簇索引)的值。聚簇索引递推规则:List item 如果表设置了主键,则主键就是聚簇索引如果表没有主键,则会默认第一个NOT NULL,且唯一(UNIQUE)的列作为聚簇索引以上都没有,则会默认创建一个隐藏的row_id作为聚簇索引索引结构id 是主键,所以是聚簇索引,其叶子节点存原创 2021-09-06 22:04:54 · 893 阅读 · 2 评论 -
MySQL Index Condition小结
什么是index Condition?索引下推(index condition pushdown )简称ICP,在Mysql5.6的版本上推出,用于优化查询。在不使用ICP的情况下,在使用非主键索引(又叫普通索引或者二级索引)进行查询时,存储引擎通过索引检索到数据,然后返回给MySQL服务器,服务器然后判断数据是否符合条件 。在使用ICP的情况下,如果存在某些被索引的列的判断条件时,MySQL服务器将这一部分判断条件传递给存储引擎,然后由存储引擎通过判断索引是否符合MySQL服务器传递的条件,只有当索原创 2021-09-06 21:36:38 · 718 阅读 · 0 评论 -
Macos下重置MySQL密码
环境信息Macos Catalina 10.15.7 (19H2)MySQL 8.0.22问题忽然一段时间忘记了MySQL数据库的密码,登录不上去了。该如何办呢?预想中的路径mysqld_safe --skip-grant-tables 设置密码不生效mysql -u root 直接登录重置密码之类的动作结果发现,mysqld_safe无法启动成功,一直被拒绝启动实际重置路径brew uninstall mysql 卸载mysqlbrew install mysql原创 2020-11-30 09:54:30 · 1068 阅读 · 0 评论 -
Spring Boot中单元测试数据库的切换策略
问题缘起单元测试默认情况下使用嵌入式数据库,例如H2。如果要切换为MySQL,直接移除H2驱动,在application.properties(yml)配置相应的连接信息,都不起作用。那该如何切换配置呢?单元测试数据库在SpringBoot的单元测试中,默认使用嵌入数据库,例如H2,HSQLDB等.默认情况下无需指定具体的嵌入数据库类型,只需要在pom.xml文件中加入相应的数据库驱动即可,示例如下:<dependencies> <!-- 略去其余依赖 ---&g原创 2020-06-18 08:48:07 · 4185 阅读 · 0 评论 -
MySQL之[42000][1055] Expression #1 of SELECT list is not in GROUP BY clause问题
问题提出MySQL数据表查询语句:select * from t_user where sex = 0 group by home_address having count(id)>0;提示如下错误信息:[42000][1055] Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'spb-db.t_user.id' which is not functionall原创 2020-05-23 10:32:26 · 2013 阅读 · 3 评论 -
"org.hibernate.AnnotationException: No identifier specified for entity"异常分析
环境设置Spring Data JPA, HibernateSpring Boot 2.1.13.RELEASE异常信息:异常信息如下:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class...原创 2020-03-31 10:08:24 · 1718 阅读 · 0 评论 -
MySQL的慢查询设置
引言: MySQL是目前最为流行的数据库,在实际应用中,需要关注的查询比较慢的SQL语句,在Mysql中已经提供了类似的设置,帮忙我们将执行时间超过某个时间阀值的SQL打印出来。本文将介绍如何来设置并使用这个功能。原创 2016-08-10 10:38:02 · 4760 阅读 · 0 评论 -
JPA之"could not initialize proxy - no Session"的异常解决
引言: 在使用JPA中经常会碰到各类问题,这里列出解决no Session问题的方法。原创 2016-09-08 16:23:55 · 9266 阅读 · 2 评论 -
如何重置MySQL中表中自增列的初始值
如何重置MySQL中表中自增列的初始值原创 2017-02-28 10:24:14 · 7133 阅读 · 0 评论 -
在Centos 7下安装MariaDB简明教程
引言: 本文将简要介绍如何在CentOS 7的环境下,安装Mariadb,配置用户和访问权限等类似操作。 CentOS Cent OS是业界中大名鼎鼎的RedHat红帽系统的开源编译版本,站在巨人的肩上是可以看得更高更远, 由于RedHat的Linux系统非常稳定和强大,且已经得到了业界的普遍认可,这一点从Red Hat的公司业绩就一目了然得感觉到。由于Red Hat Linux系统...原创 2017-04-30 22:21:10 · 8869 阅读 · 2 评论 -
MySQL在本机无法基于localhost访问的问题解决
引言: 在本地访问数据库之时,一般使用localhost, 127.0.0.1来进行数据库访问,但是笔者这几天就碰到了只能通过127.0.0.1来访问,但是无法基于localhost来访问,非常之诡异…..环境介绍Centos 7, mariadb 10.2 tomcat 8 , Java War应用问题表现在数据库连接中使用了localhost:3306之类的连接信息,但是在启动服务过程中,一原创 2017-07-12 16:59:13 · 24675 阅读 · 4 评论 -
ElasticSearch学习笔记-索引构建
installation在mac下安装可以直接使用brew来进行: brew install elasticsearch## 基于界面的Front查询界面 可以安装chrome 浏览器中的elasticsearch head插件来查看。 另外也可以运行基于nodejs的head界面工具, 项目地址: https://github.com/mobz/elasticsearc...原创 2018-02-13 13:36:22 · 428 阅读 · 0 评论 -
ElasticSearch之NoNodeAvailableException[None of the configured nodes are available问题解决
问题的提出最近在学习ElasticSearch之时,基于Java客户端的代码来测试基本的操作,结果在写测试程序的时候,碰到如下问题: Mar 13, 2018 7:17:29 PM org.elasticsearch.plugins.PluginsService <init>信息: [Nimrod] modules [], plugins [], sites []Ma...原创 2018-03-13 20:18:07 · 52127 阅读 · 1 评论 -
Sprig Boot下基于SQL Script初始化数据库的方法总结
环境信息Spring Boot 2.0.3, Windows 7, JPA, Spring Data, MySQL需求虽然JPA和Hibernate底层提供了强大的支持,但是在实际开发中,仍然会有需要自定义数据表和初始化数据的需求,对于这个需求,Spring Boot也提供了相应的支持,只是对于这个需求是有一定的前提条件和约束的,换句话说,这些SQL script只能在特定设置和...原创 2018-07-17 10:27:15 · 1536 阅读 · 0 评论 -
Macos下安装MySQL简明教程
环境介绍Macos Jave 10.14. MySQL 5.7基于Brew安装brew install mysql@5.7运行结果如下:Updating Homebrew...==&gt; Downloading https://homebrew.bintray.com/bottles/mysql@5.7-5.7.24.mojave.bottle.tar.gz#########...原创 2018-10-29 11:26:33 · 1799 阅读 · 0 评论 -
Macos下MySQL重置密码过程分析
引言MySQL从5.7直接跳至8.0,其中发生了很多变化,本文聚焦于重置用户密码上的差异和问题解析过程。Macos下安装指南: Macos下安装MySQL简明教程Centos下安装指南:MySQL在CentOS上的安装与启动Centos下重置root密码: MySQL 5.7下重置密码问题环境: Macos重置root密码在安装完成MySQL之后,默认root密码为null,则希望重...原创 2019-04-23 10:13:24 · 1531 阅读 · 0 评论 -
Spring Boot下Mysql数据库的中文乱码问题分析
引言: 今天的问题将围绕Java写入Mysql之时,中文在数据库中编程乱码的分析追踪过程,以此来了解和优化分析解决问题的过程。原创 2016-08-31 16:40:29 · 26483 阅读 · 12 评论 -
Spring Boot下基于JPA抓取SQL运行时的参数值
引言: 在系统开发过程中,涉及到数据库操作都是SQL的天下,基于ORM的各类框架来简化开发;在JPA/Hibernate方案中,只提供了SQL的打印输出,但并未输入SQL的参数值是多少,这里将解决这个问题,告知具体如何来实现这个操作。原创 2016-08-31 13:19:44 · 23490 阅读 · 5 评论 -
MySQL中创建外键的错误:1215 Cannot add the foreign key constraint
引言: MySQL中经常会需要创建父子表之间的约束,这个约束是需要建立在主外键基础之上的,这里解决了一个在创建主外键约束过程中碰到的一个问题。原创 2016-07-12 09:19:55 · 74146 阅读 · 7 评论 -
Beginning DataBase读书笔记
1. DataBase: FlatFile System, Hirarchery DataModel, Network DataModel, Relational DataModel, Object/Relational-Object DataModel2. Database type: a. Transactional DataBase: C/S, OLTP b. DSS: Da原创 2007-06-28 16:01:00 · 1113 阅读 · 0 评论 -
OLAP定义
OLAP:联机分析处理 OLAP:Online Analytical Processing联机分析处理(OLAP)指的是对存储在数据库或数据仓库中的数据提供分析的一种软件。OLAP 工具能快速提供复杂数据库查询的答案,并帮助用户分析多维数据中的各维情况。通常 OLAP 应用于数据仓库中的数据处理过程,即所谓的“数据挖掘”(Data Mining)。关系数据库中,是将经过规范化的实体存放在分散的表格转载 2007-07-03 10:42:00 · 1625 阅读 · 0 评论 -
SQLServer 索引使用技巧
实现小数据量和海量数据的通用分页显示存储过程 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的原创 2007-04-19 13:43:00 · 886 阅读 · 0 评论 -
数据库索引使用分析
SQL Server 索引结构及其使用(一)作者:freedk一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的转载 2007-04-19 14:09:00 · 847 阅读 · 0 评论 -
规范化-数据库设计原则
http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0605jiangt/index.html摘要关系型数据库是当前广泛应用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而,随着项目规模的不断增转载 2007-04-20 13:55:00 · 1580 阅读 · 0 评论 -
数据库设计原则的几点考虑
实现sql server数据库的优化,首先要有一个好的数据库设计方案。在实际工作中,许多sql server方案往往是由于数据库设计得不好导致性能很差。实现良好的数据库设计必须考虑这些问题: 1. 逻辑数据库规范化问题 一般来说,逻辑数据库设计会满足规范化的前3级标准: 第1规范:没有重复的组或多值的列; 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的转载 2007-04-20 14:06:00 · 2655 阅读 · 0 评论 -
前触发器和后触发器简介(downmoon)
前触发器和后触发器简介(downmoon) 触发器是一种特殊的存储过程。当Insert Update 或者Delete 语句修改表中一个或者多个行时执行触发器。因为SQL Server 对特定表上的每一个指定操作调用一个触发器,所以可以使用触发器扩展SQL Sever 的内置完整性和数据操纵功能. 注意:不像Delete 语句,Trancate Table 语句不激活触发器,Write转载 2007-04-20 16:03:00 · 1252 阅读 · 0 评论 -
数据库设计范式(实例)
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。 在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手。 第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码转载 2007-04-20 16:08:00 · 1079 阅读 · 0 评论 -
转帖
摘 要 本文介绍了Java访问数据库的原理及其存在的问题,提出了解决办法-数据库连接池,并对其关键问题进行了分析,构建了一个简便易用的连接池并结合当前热门技术Servlet说明了其如何在开发时使用。 关键词 JDBC,Jsp/Servlet,数据库连接池,多数据库服务器和多用户,多线程 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机转载 2007-05-18 10:31:00 · 1006 阅读 · 0 评论 -
SQL Learning Tip 5
1. The constraints include: NOT NULL, primary key, foreign key, Unqiue2. A check constraint restricts what values you can insert into a column. It uses the same conditional as a where clause. SQL原创 2008-07-09 03:02:00 · 884 阅读 · 0 评论 -
如何从Hadoop安全模式中进入正常模式
问题: 在Hadoop中,新建一个目录,报错了,提示mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory,该如何解决呢?原创 2014-05-18 08:16:00 · 2181 阅读 · 0 评论 -
MyBatis在Oracle中插入数据并返回主键的问题解决
引言: 在MyBatis中,希望在Oracle中插入数据之时,同时返回主键值,而非插入的条数...原创 2014-05-12 17:50:41 · 37800 阅读 · 2 评论 -
一图以蔽之---选择合适的NoSQL
通过一张图,来选择合适的NOSQL数据库原创 2014-08-04 21:48:24 · 1474 阅读 · 0 评论 -
CentOS上安装Oracle XE指南
引言: 在Centos上安装oracle XE主要用来解决学习和测试的用处,虽然简单,但也是涉及到了诸多的步骤和细节问题。原创 2015-01-10 16:21:49 · 5320 阅读 · 0 评论 -
诡异的分页代码失效问题
前言: 之前碰到了一个界面上分页失效的问题,并为之困扰了数日,后台定位为排序失效的问题,问题就迎刃而解了...原创 2014-12-09 15:27:59 · 2737 阅读 · 0 评论 -
MySQL在CentOS上的安装与启动
引言: MySQL由于其闭源代码策略,导致各个Linux发行版都将MariaDB默认替换掉了MySQL,但是有时候,其实你还需要,那怎么办呢?原创 2015-12-31 23:00:02 · 13268 阅读 · 1 评论 -
MySQL测试SQL执行的速度测试
引言: 在Mysql中如何测试单个SQL的执行时间,是非常有助于我们理解其中的问题的,本文将介绍如何定位SQL.的使用时间和执行计划。原创 2016-03-29 17:45:25 · 9618 阅读 · 3 评论 -
数据库常见的三种join方式
数据库常见的join方式有三种:inner join, left outter join, right outter join(还有一种full join,因不常用,本文不讨论)。这三种连接方式都是将两个以上的表通过on条件语句,拼成一个大表。以下是它们的共同点:1. 关于左右表的概念。左表指的是在SQL语句中排在left join左边的表,右表指的是排在left join右边的表。2. 在拼转载 2007-06-18 16:36:00 · 1367 阅读 · 0 评论