RDBMS
文章平均质量分 60
siyangshen
这个作者很懒,什么都没留下…
展开
-
SQL基础总结(一):关系模型
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。--------------------------------------------------------------- 规范化父子表图示:由父表画出主键画出箭头指向子表外键。满足第一范式的表:列包含原子值,没有重复的组。 当满足下列条件时第一范式的表自动满足第二范式的表:1.主键是一个列(也就是说不是...原创 2012-01-14 08:17:51 · 234 阅读 · 0 评论 -
SQL基础总结(十):索引
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)--------------------------------对于以下列创建索引是恰当的,这些列经常被:查询、排序、分组、联结、用来计算顺序统计(MIN、MAX或中值)。对于以下列创建索引是不恰当的:仅接受很少不同值(如性别)、很...原创 2012-04-16 12:39:15 · 80 阅读 · 0 评论 -
SQL基础总结(十一):视图
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)--------------------------------除了ORDER BY子句通常是被禁止的,几乎所有有效的SELECT语句都可以定义视图。可以嵌套视图,视图的SELECT语句可以从其他视图中检索数据。将包含大量运算的...原创 2012-04-16 12:39:31 · 118 阅读 · 0 评论 -
关系数据库扩展知识总结
最近在学习分布式数据库架构相关的知识(主要是Mysql),并对数据库扩展这部分知识整理总结了一下,希望对看到的人有所帮助,也希望读者能多提建议。-----------------------------------------------------------关系型数据库扩展的几个步骤:一、第一步:主从复制+读写分离1.Mysql数据库主从复制是依据主服务器的二进制日志进行的....原创 2012-08-07 22:49:14 · 257 阅读 · 0 评论 -
公司某产品MySql分布式架构总结
这个是目前公司某产品Server端MySql分布式架构总结(内容总结自wiki),该产品同时使用了Mysql和MongoDB。本篇Blog只做Mysql分布式架构的介绍。----------------------------------------------------一、共4台Linux服务器A\B\C\DA master with slave BC master wit...原创 2012-08-09 22:37:33 · 231 阅读 · 0 评论 -
Mysql主从复制原理
本文总结自网上关于Mysql复制原理的一些文章。----------------------------------------------------------1、Mysql复制是一个异步的复制,从master instance到slave instance,实现整个复制操作主要使用3个进程完成。其中2个进程是Slave的Sql进程和IO进程,另一个进程是Master的IO进...原创 2012-08-10 23:44:59 · 66 阅读 · 0 评论 -
关于SQL调优与报表的性能优化
前一段时间做了某产品实时统计的报表,这周在对报表性能进行优化。其中逐步积累了一些优化经验,总结一下记录下来,欢迎大家一起探讨。本文仅限于探讨单个数据库的查询sql及统计报表调优,不涉及分布式数据库架构或垂直、水平扩展等知识。(本文中的统计数据库为Mysql) 一、SQL调优:1、提升统计查询性能,首当其冲当然还是对查询SQL进行优化,说到SQL调优,不得不先说一下Mys...原创 2012-08-30 20:13:00 · 495 阅读 · 0 评论 -
数据库SQL优化总结(续)
曾写过一篇《SQL调优与报表性能优化》的文章,今天结合那篇文章把前段时间工作中的一些认识和网上收集别人的经验重新总结整理一下,作为上一篇SQL优化的续篇,分享出来,希望对看到的人有所帮助。同时欢迎拍砖。一、SQL优化的基本思想:1、 最小化结果集数据量。Sql所需处理的资源总量/Sql单位时间所能处理的资源量=Sql执行时间所以为减少Sql执行时间:(1)可以增大Sql单...原创 2013-06-17 06:31:02 · 103 阅读 · 0 评论 -
关系数据库设计与范式回顾
今天先把关系数据库设计及范式相关知识回顾总结一下,大部分出自我2010年底的学习笔记,发上来供大家参考,同时也希望对看到的人有所帮助。--------------------------------------------一、三大范式1、第一范式:消除一个字段包含多个数据库值,消除一个记录包含重复的组(单独的一列包含多个项目),即可满足1NF。2、第二范式:消除部分依赖性即可转化为...原创 2013-01-01 10:15:05 · 180 阅读 · 0 评论 -
[转自网络]Mysql中的Explain解析
最近在网上看到一篇不错的关于Mysql中Explain分析的文章,地址记录如下:Mysql Explain详解http://www.cnitblog.com/aliyiyi08/archive/2008/09/09/48878.html原创 2012-10-14 20:43:58 · 77 阅读 · 0 评论 -
关于MySQL联合索引
总结记录一下关于在MySQL中使用联合索引的注意事项,参考资料:《高性能MySQL》第二版例:索引包含表中每一行的last_name、first_name和dob(生日)列,即key(last_name, first_name, dob)。以下情况可以用到索引:(1)匹配全值(Match the full value):对索引中的所有列都指定具体的值。(2)匹配最左前缀(Mat...原创 2013-08-20 07:42:44 · 1050 阅读 · 0 评论 -
关于MySQL主从不同步问题
今天线上出现了数据更新后在手机终端无法获取最新数据的问题。仔细查看了一下,刚开始认为是ActiveMQ消息队列阻塞导致无法及时更新缓存(原来出现过1次)。可手工删除redis中对应的key后还是无法重新reload数据,这才意识到是主从同步出了问题。原来是某应用曾经连错mysql并向slave中新写入了几条数据,后来改为连master,并把写入slave的数据重新写入master表...原创 2013-09-24 21:49:45 · 105 阅读 · 0 评论 -
SQL基础总结(九):插入更新删除行及创建更新删除表
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)--------------------------------插入更新删除行 使用INSERT插入行INSERT INTOtable VALUES(value1,value2,value3…);INSERTINTO tab...原创 2012-04-16 12:38:59 · 167 阅读 · 0 评论 -
SQL基础总结(八):集合操作
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)--------------------------------使用UNION合并行UNION操作将两个查询返回的结果合并成一个结果。UNION从结果中去掉重复的行,UNION ALL不去掉重复的行。两个查询的SELECT子句列出的列(列名...原创 2012-04-16 12:38:27 · 108 阅读 · 0 评论 -
SQL基础总结(二):SQL基础
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。 --------------------------------------------------------------- 标识符是可以在数据库对象(任何create语句所创建的内容)层次中明确的引用一个对象的名称。 标准的SQL区分保留关键字和非保留关键字。不可以用保留关键字作为标识符,如不能将表命名为se...原创 2012-01-14 08:21:36 · 51 阅读 · 0 评论 -
SQL基础总结(三):从表中检索数据
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。 ---------------------------------------------------------------使用DISTINCT消除重复的行。虽然空值是未知的,但彼此绝不相等,但DISTINCT认为空值是彼此相等的。对于DISTINCT操作,DBMS执行内部排序去识别并消除重复的行。排序是需要大量计...原创 2012-01-14 08:23:54 · 129 阅读 · 0 评论 -
工作中的一个SQL查询总结
前一段时间的工作中有一项是计算实时统计结果并生成相应的数据表(主要是算产品PV,UV的环比什么的)。所谓实时统计,就是终端请求Server接口时把相应数据写进日志,然后使用Python分析日志程序,将各统计项整理成各自的文件。再将这些整理好的文件定时发送到解析文件接口中解析并入库。最后写SQL计算统计结果。顺便提一句,我们用的是MySQL,单库千万量级以下的数据都没问题。例如每天往表...原创 2012-07-17 22:13:22 · 121 阅读 · 0 评论 -
Mysql命令整理
整理一下,时常用到,不定期更新:(1)连接数据库:/local/mysql/bin./mysql --port=3301 -uroot -p123456 --protocol=tcp(2)创建数据库:create database dbname;(3)切换数据库:use dbname ;(4)赋予权限:GRANT ALL ON dbname.* TO 'us...原创 2012-07-31 22:46:09 · 61 阅读 · 0 评论 -
关于批量写入数据库
今天上午写个程序要将几张表内的数据读出写入一张表(2w多数据),开始没有使用批处理(每条写入都自动commit),写入速度在分钟级(太慢了后来就没计时),后来添加了批处理(不自动commit),全部用时20多秒。可见批处理写入数据库要快很多。程序大致结构如下:EntityManager em = JPA.em();em.setFlushMode(FlushModeType.COMMIT...原创 2012-07-31 23:01:24 · 196 阅读 · 0 评论 -
关系数据库事务隔离级别
关系数据库的四个事务隔离级别,从最低到最高如下:1、未提交读(会发生脏读)一个事务A访问一条数据并修改了它,但尚未提交时,另一个事务B读取了这条数据。这时如果事务A回滚,则出现读脏数据的情况。2、读提交(会发生不可重复读):即同一事务内,多次读同一数据。重点是修改:同样的条件,你读取过的数据,再次读取出来发现值不一样了。一个事务A第一次在读取某条数据后,事务B修改了这条数据...原创 2013-04-21 15:22:12 · 165 阅读 · 0 评论 -
mysql事务回滚
前几天发现程序有个Bug:使用JPA已经设置了回滚,但抛出异常后,提交的事务并没有回滚。刚开始以为是JPA使用问题,debug了近2个多小时竟然找不到原因。后来上网查了一下,才发现不是程序问题(坑爹啊,看来自己对mysql还是不熟),是数据库表问题(JPA自动建表)。原因如下:mysql建表时如果指定ENGINE=MyISAM,事务是无法回滚的(MyISAM引擎本身不支持事务...原创 2012-04-15 10:03:17 · 305 阅读 · 0 评论 -
SQL基础总结(四):操作符和函数
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)--------------------------------派生列是一个计算结果。派生列不会成为表中的永久列,他们用于显示或者报表目的。 包含空值的任何算数运算的结果是空值。 在算术表达式中使用多种数字数据类型。DBMS将...原创 2012-04-15 11:09:56 · 105 阅读 · 0 评论 -
SQL基础总结(五):汇总和分组数据
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)-------------------------只对单个值进行操作的是标量函数。对一组值进行操作以产生一个汇总值的是SQL聚合函数或集合函数。可以对行的集合进行聚合,这些行可以是:1. 表中所有的行。2. 那些由Group by子...原创 2012-04-15 11:12:14 · 216 阅读 · 0 评论 -
SQL基础总结(六):联结
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)--------------------------------限定名称是一个表名后跟一个点号和表中的列名。限定名称可以在整个数据库中唯一的标识出某个列。如:table.column。要提高性能,应该在联结查询中对所有列使用限定名称。 ...原创 2012-04-15 11:15:55 · 90 阅读 · 0 评论 -
SQL基础总结(七):子查询
本系列blog源自前年写的SQL学习笔记,汇总一下发上来。(1月份发了前三篇笔记,原以为后面的笔记误操作删了,今天在硬盘里又找到了,一起发上来)--------------------------------不要在子查询中使用ORDER BY子句,子查询返回的中间结果是看不到的,对子查询排序没有意义。子查询是单个SELECT 语句,不能使用UNION连接多个SELECT语句作为子查询。...原创 2012-04-15 11:18:18 · 156 阅读 · 0 评论 -
MySQL开发规范[转自网络]
本文转自网络,原文地址:http://www.2cto.com/database/201403/285170.html-------------------------------1.库名、表名、字段名必须使用小写字母,并采用下划线分割。a)MySQL有配置参数lower_case_table_names,不可动态更改,linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如...原创 2014-04-06 09:59:13 · 184 阅读 · 0 评论