
数据库
文章平均质量分 90
xusheng__zhang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql查询出所有重复的记录
假如我们有如下一张数据表(很简单,只是举例而已),表名为student。现在我们要取出其中重复记录。重复是以name相同为判定标准。 shortnameageheightweightprovinceuniversity小王20170150河南清华大学小张21175144河北北京大学小李20160122福建武汉大学小赵35165177江西浙江大学小孙40164188西藏华中科技大学小宋原创 2017-10-28 16:13:08 · 36814 阅读 · 1 评论 -
MySQL优化——定期清理索引碎片
在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表.比如: 表的引擎为innodb , 可以 alter table xxx engine innodb。也可以使用optimize table 表名 来进行修复. 注意: 修复表的数据及索引碎片,就会把所有的数据文件重新整理一遍,使之对齐.这个过程,如果表的行数原创 2018-01-01 20:37:02 · 6049 阅读 · 0 评论 -
MySQL优化——关于索引
MySQL中btree搜因和hash索引的区别MySQL中主要有两种索引,BTree索引和hash索引。默认情况下innodb和myisam都是使用的Btree索引,memory表使用的是hash索引。hash索引的查询复杂度为o(1)。也就是说hash索引查询速度比Btree快。但是hash索引由于是随机散列函数,数据会被放在不连续的地方,所以无法利用hash索引快速的查询某个区间的值。ha原创 2018-01-01 17:58:23 · 401 阅读 · 0 评论 -
MySQL优化——建立表的一些经验
1.将定长和变长字段分离。核心常用字段,适合建立成定长,放在一张表里面。而varchar,text,blob等变长字段,适合单独存放,使用主键和核心字段相关联。2.冷热分离根据业务将查询频度高字段和查询频度低的字段分开存储。3.适当增加冗余字段典型的用空间换时间,比如某些情况下,每插入一条数据就将count加一(count是冗余字段),这样在查询统计数量时就可以直接查询count,而不用再计数。4.原创 2017-12-31 21:01:07 · 448 阅读 · 0 评论 -
MySql优化——观察连接状态
MySQL在优化时候,可以使用show processlist来产看mysql的连接工作状态。为了能够在shell中直接使用这个命令,我们使用mysql -uroot -p123456 -e “show processlist”来代替命令行中的show processlist。 该命令返回的结果大致如下:+----+------+-----------+------------+---------原创 2017-12-31 20:09:57 · 2360 阅读 · 0 评论 -
MySQL优化——使用profiling
MySQL在5.0之后有个分析查询语句非常重要的利器,就是profiling。 要是用profiling,我们首先要打开profiling。set profiling=on;设置了profiling之后,你的每一个sql语句都会被记录分析。使用show profiles;可以查看在打开profiling之后所有被记录的操作。(这里只是为了举例,使用了非常简单的查询)+----------+----原创 2017-12-31 20:34:11 · 4147 阅读 · 0 评论 -
MySql优化——观察服务器状态
通常在对MySQL进行优化的时候,不要一上来就去优化MySQL的语句。MySQL的优化是一个系统话的过程,我们要自上而下来对MySQL进行优化。MySQL优化的第一步是观察服务器状态,找出出问题的地方在哪里,然后才能有的放矢。我们可以使用show status和show processlist命令来观察MySQL的服务器状态。show status返回了服务器很多状态指标,但是通常我们只需要关注以下原创 2017-12-31 18:52:59 · 441 阅读 · 0 评论 -
linux使用yum安装mysql
CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。1.下载mysql的repo源$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm2.安装mysql-community转载 2017-12-10 16:01:32 · 412 阅读 · 0 评论 -
spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
(转载自网络) 本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spr转载 2017-11-09 08:06:31 · 15958 阅读 · 5 评论 -
CHECK the manual that corresponds TO your MySQL SERVER VERSION FOR the RIGHT syntax TO USE near.....
使用spingdata+jpa+hibernate来对数据库进行插入操作的时候,出现了一个报错信息,说sql语法有误。报错信息如下:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error IN your SQL syntax; CHECK the manual that corresponds TO y原创 2017-11-08 20:44:07 · 5658 阅读 · 2 评论 -
MongoDB中使用MapReduce来进行聚合操作
在mongoDB的MapReduce操作中,map函数产生一些列中间数据,这些中间数据是key/value的集合。reduce函数收集具有相同中间key值的value值,合并这些value值,形成一个较小的value值的集合。 一个MongDB的MapReduce执行的过程如下所示。 在这个MapReduce操作中,首先通过query筛选出了一部分的数据,然后对着一部分的数据进行map操作原创 2017-11-07 20:35:26 · 6619 阅读 · 1 评论 -
使用mongoDB pipeline进行聚合操作
mongoDB中的聚合操作将多个文档中的值组合在一起,并可对分组数据执行各种操作,以返回单个结果。 在SQL中的 count(*)与group by组合相当于mongodb 中的聚合功能。 mongoDB为我们提供了三种方法来实现聚合操作。分别是aggregation pipeline,Map-Reduce和Single Purpose Aggregation Operations。今天我们主要来原创 2017-11-06 20:18:58 · 19890 阅读 · 1 评论 -
mysql如何用一条sql语句实现不存在就插入,存在的话则更新
今天被朋友问到一个问题,在用SQL对mysql进行操作时,如何用一条sql实现不存在则插入,存在则更新。说实话,以前比较懒,每次都直接在程序中写一个if...else...,不免觉得代码太丑陋,而且在性能上也不好。因此对这个问题跟朋友进行了深入的讨论,加上网络上的资料,对这个问题进行了一个总结:1.使用原创 2017-09-18 20:46:21 · 13838 阅读 · 3 评论 -
MariaDB实现主从复制
MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB。 MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。 1.环境准备:首先你要有两台相互原创 2017-10-15 15:30:20 · 1121 阅读 · 0 评论 -
MySQL优化——使用explain来分析sql语句
MySQL为我们提供了一个分析sql语句执行计划的利器,那就是explain。通过explain我们可以分析一个sql语句完整的执行计划,包括使用的索引,扫描的行数以及是否使用了文件排序等等,在我们分析sql语句,优化sql语句中具有重要的意义。原创 2018-01-02 15:16:49 · 1616 阅读 · 0 评论