数据库
程江玉
爱编程,爱交流,爱自己,爱生活
展开
-
MySQL索引原理以及查询优化
转载:https://www.cnblogs.com/bypp/p/7755307.htmlMySQL索引原理以及查询优化一、介绍1.什么是索引?一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。2....转载 2018-09-08 22:08:59 · 347 阅读 · 0 评论 -
使用MySQL数据库值得注意的23个事项
使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1. 如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就需要使用SSH隧道来加密该连接的通信。2. 用setpassword语句来修改用户的密码,三个步骤,先“mysql-uroot”登陆数据库系统,然后“mysql>updatemysql.usersetpassword=password(newpwd)转载 2012-09-13 21:01:56 · 1003 阅读 · 0 评论 -
Oracle几种查找和删除重复记录的方法总结
摘要:平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。 下面总结一下几种查找和删除重复记录的方法(以表平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。下面总结一下几种查找和删除重复记录的方法(以表CZ为例):表CZ的结构转载 2012-09-13 20:54:58 · 612 阅读 · 0 评论 -
MySQL Query Cache 小结
http://www.csdn.net/article/2010-08-18/278326 摘要:阿里巴巴MySQL Oracle DBA 简朝阳 (Sky Jian)曾发表过一篇文章《 MySQL Query Cache 小结 》,对进行了MySQL Query Cache 相关问题进行了总结,现转载于此,供大家学习: 最近经常有人问我 MySQL Quer阿里巴巴MySQL转载 2012-09-13 20:39:05 · 661 阅读 · 0 评论 -
大数据存取的选择:行存储还是列存储?
http://developer.51cto.com/art/201209/358008.htm目前大数据存储有两种方案可供选择:行存储和列存储。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量和计算要求,基本是淘汰出局。在已知的几种大数据处理软件中,Hadoop的HBase采用列存储,Mon转载 2012-09-28 09:23:58 · 1602 阅读 · 0 评论 -
left join 小问题
http://hi.baidu.com/kinomn/item/1d53c5ddcd2bb715e1f46f20 有这么2个表:------------------------------------------------- a | b | ------------------------------------------------- id name |id fi转载 2012-08-29 11:46:21 · 676 阅读 · 0 评论 -
(走向DBA[MSSQL篇] - 从SQL语句的角度提高数据库的访问性能)一些SQL查询语句应加上nolock
http://kb.cnblogs.com/page/124787/#s8 最近公司来一个非常虎的DBA,10几年的经验,这里就称之为蔡老师吧,在征得我们蔡老同意的前提下 ,我们来分享一下蔡老给我们带来的宝贵财富,欢迎其他的DBA来拍砖。 目录1、什么是执行计划?执行计划是依赖于什么信息2、 统一SQL语句的写法减少解析开销3、 减少SQL语句的嵌套4、 使用“转载 2012-08-06 11:29:02 · 3230 阅读 · 0 评论 -
SQL注入——网络安全问题不容忽视!(一)
http://1035054540-qq-com.iteye.com/blog/1517577前言—— 学习数据库,老师说需要有人自学研究sql注入,然后做一个充满漏洞的系统,做测试。很荣幸,这个人是我。然后大概经过一个礼拜的自学,从攻击和防御两个阶段对安全问题进行了算是彻底的研究。并且发现在网上发现了一系列充满漏洞的网站,漏洞大同小异,但是这对于我们来说,安全问题尤为重要转载 2012-05-14 17:06:29 · 738 阅读 · 0 评论 -
setAutoCommit(false); 后没有手动commit. 对数据库有什么影响?
http://www.iteye.com/problems/79138connection.setAutoCommit(false); 如果因为当机,关闭服务器等原因,没有手动 commit or rollback. 对数据库有什么影响?因为数据库不一样,对于数据保护的机制也不都一样 对于oracle数据库来说 机器停电,那么在重起之后转载 2012-05-30 10:48:36 · 1713 阅读 · 0 评论 -
大话PreparedStatement.addbatch()的使用
Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用.1.建立链接,(打电话拨号 ) Connection connection =getConnection();2.不自动 Commit (瓜子不是一个一个吃,全部剥开放桌子上,然后一口舔了)con转载 2012-04-28 09:49:02 · 738 阅读 · 0 评论 -
MySQL语句的执行效率查看
http://my.oschina.net/taisha/blog/36415explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了: 如:explain select surname,first_name form a,b where a.转载 2012-04-25 11:13:03 · 1785 阅读 · 0 评论 -
程序员老鸟写sql语句的经验之谈
http://database.51cto.com/art/201210/360177.htm做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等。因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为公司衡量程序员技术水平的标准。我们程序员不是dba,不需要时刻关注sql运行时间,想方设法优化表结转载 2012-10-12 11:24:15 · 1204 阅读 · 0 评论 -
操作日期的SQL语句大全
1.显示本月第一天 SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) select convert(datetime,convert(varchar(8),getdate(), 120)+’01’,120) 2.显示本月最后一天 select dateadd(day,-1,convert(datetime,convert (va转载 2012-10-12 11:45:44 · 798 阅读 · 0 评论 -
子查询中不能包含order by
今天做开发遇到一个问题:写sql语句:select top 20 * from (select top 200 * from ump_user order by id)ttnn sql查不出来 因为子查询中不能包含order by 子句具体原因:在8i以前,子查询中不能包含Order By子句。从8i开始,子查询可以有Order By,但必须是有top-n的这原创 2012-11-14 15:30:51 · 4625 阅读 · 0 评论 -
MySql日期处理系列-日期截取/转换方法
以下都是我平时用的一些日期截取/转换方法,方法并不一定是最有效率的.全部均通过测试!转载请注明来自[phpchina.com]#title: 日期截取/转换#auther: 小强(占卜师) #date: 2007-12-19#取得当前日期set @dt=CURDATE();select @dt;#取得当前时间包括日期部分SET @dt=now();转载 2014-05-13 15:44:40 · 5330 阅读 · 0 评论 -
MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
http://zeusami.iteye.com/blog/1112827MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failurecom.mysql.jdbc.exceptions.jdbc4.Communi转载 2014-02-22 10:51:57 · 112373 阅读 · 12 评论 -
Java数据库连接池学习
http://www.cnblogs.com/heshan664754022/archive/2013/04/07/3005967.html连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连转载 2014-01-21 14:32:59 · 948 阅读 · 0 评论 -
ibatis sql语句使用小结
1、在sql查询中,经常会使用到子查询方法,一般情况都是只传递一个参数,但有的需求需要传入多个参数,通过搜集查询资料具体解决方案如下: …… select count(1) from ump_method_config(nolock)where mc_appid = #appId# 2、ibatis动态sql查询时经常出现第二次及以后查询都执行的第一条sql,解决方转载 2013-09-29 17:28:31 · 1261 阅读 · 0 评论 -
Java 程序员容易犯的10个SQL错误
Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准:技能(任何人都能容易学会命令式编程)模式(有些人用“模式-模式”,举个例子,模式可以应用到任何地方,而且都可以归为某一类模式)心境(首先,要写个好的面向对象程序是比命令式程序难的多,你得花费一些功夫)但当Java程序员写SQL语句时,一切都不一样了。SQL是转载 2013-09-11 11:43:41 · 1429 阅读 · 0 评论 -
MySQL提供的可以计算两个时间间隔的函数
http://blog.csdn.net/liufuxian/article/details/6005247函数TimeStampDiff()是MySQL本身提供的可以计算两个时间间隔的函数,语法为:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2),其中unit单位有如下几种,分别是:FRAC_SECOND (microseconds)转载 2013-08-28 13:40:17 · 1433 阅读 · 0 评论 -
SQL优化:NULL值与索引的使用
NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的、是不确定的。简单的说,由于NULL存在着无数的可能,因此两个NULL不是相等的关系,同样也不能说两个NULL就不相等,或者比较两个NULL的大小,这些操作都没有意义,得不到一个确切的答案。那么,一个字段有可能存在空值是否适合创建索引呢? 大多数人都听说过这样一句话,索引不存储NULL值。这句话其实转载 2013-08-20 23:40:50 · 15199 阅读 · 1 评论 -
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
http://blog.csdn.net/smcwwh/article/details/6927613【sqlserver】: sqlserver 认为 null 最小。 升序排列:null 值默认排在最前。 要想排后面,则:order by case when col is null then 1 else 0 end ,col 降序排列:null 值默认排在最后转载 2013-08-20 23:40:11 · 1202 阅读 · 1 评论 -
SQL语句执行顺序分析
http://daociyiyou111.blog.163.com/blog/static/1647015122011912101939547/ SQL语言不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理。但在SQL语句中,第一个被处理的子句式FROM,而不是第一出现的SELECT。SQL查询处理的步骤序号:(8)转载 2013-07-18 15:04:20 · 664 阅读 · 0 评论 -
Mysql行转换为列
http://www.cnblogs.com/lhj588/archive/2012/06/15/2550392.html 今晚需要统计数据生成简易报表,由原表格数据是单行的形式,最好转换为列表格式,由网上介绍方法实现如下:希望获得的最终效果见下:+-------+------+-------+-------+--------+--------+--------+---转载 2013-07-09 16:42:55 · 876 阅读 · 0 评论 -
sql 语句替换字符串
sql 语句替换字符串 update user set email=replace(email,'@mm.com','@nn.com');原创 2013-03-22 09:12:58 · 1672 阅读 · 0 评论 -
数据库隔离级别
数据库事务有严格的定义,它必须同时满足4个特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durabiliy),简称为ACID。其中隔离性指在并发数据操作时,不同的事务拥有各自的数据空间,其操作不会对对方产生干扰。隔离允许事务行为独立或隔离于其他并发运行的事务。通过控制隔离,每个事务在其行动时间里都像是修改数据库的惟一事务。一个事务与其他事务隔转载 2011-12-12 23:57:02 · 658 阅读 · 0 评论 -
in和exists的区别与SQL执行效率分析
很多论坛又开始讨论in和exists的区别与SQL执行效率的问题,本文特整理一些in和exists的区别与SQL执行效率分析SQL中in可以分为三类:1、形如select * from t1 where f1 in ('a','b'),应该和以下两种比较效率select * from t1 where f1='a' or f1='b'或者 select * fr转载 2011-11-10 21:38:48 · 610 阅读 · 0 评论 -
数据库性能优化之冗余字段的作用
在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且完全等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段。——以上是我自己给出的定义 冗余字段的存在到底是好还是坏呢?这是一个不好说的问题。可能在有人看来,这是一个很蹩脚的数据库设计。因为在数据库设计领域,有一个被大家奉为圭臬的数据库设计范式,这个范式理论上要求数据库设计逻辑清晰、关系明确,比如,”用户昵称”字转载 2011-11-19 15:17:07 · 7069 阅读 · 1 评论 -
关系型数据库性能优化总结
对于web应用开发,多数性能瓶颈均出现在数据库上,除了采用分布式架构或云处理(大公司基本上都是),更重要的是平时程序设计时要遵照一些规则,从根本上提高系统的性能,以下总结了一些常用的规则方法,仅供参考,欢迎跟帖补充。。。 1、 把数据、日志、索引放到不同的I/O设备上,增加读取速度。数据量(尺寸)越大,提高I/O越重要。2、 纵向、横向分割表,减少表的尺寸,如:可以把大数据量的字段拆分转载 2011-11-19 15:08:33 · 547 阅读 · 0 评论 -
MySQL存储引擎比较
http://menglimengwai.iteye.com/blog/464667MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。 InnoDB存储引擎提供了具有提交转载 2011-11-19 22:20:23 · 378 阅读 · 0 评论 -
LevelDB内部实现
http://blog.nosqlfan.com/html/2882.html 本文是一篇转载的翻译文章,翻译对象是LevelDB的官方文档中实现一章,主要描述了LevelDB内部的数据结构,文件结构及相关的存储,压缩恢复等功能的实现过程,看完后你就能知道,LevelDB为什么会叫这个名字了。:)作者:Jeff Dean, Sanjay Ghemawat原文:leveldb.goo转载 2011-11-17 20:36:10 · 531 阅读 · 0 评论 -
sql多表查询之三:子查询IN
关于使用子查询IN,给大家一个小忠告:子查询IN适合外结果集大,子查询结果集小的情况,千万不能滥用子查询IN,您一定要保证子查询所返回的结果集尽量的小,哪怕你的SQL返回记录数只有1条,如果你使用到了子查询IN,而你的子查询返回10000条,那速度会受到很大影响呢 大家都领会过使用不等连接进行库存计算的神妙了吧,有没有应用到自己的学习与工作中去呢?今天我们上第三盆菜,子查询,有什么建议或意见转载 2011-10-25 23:55:50 · 9225 阅读 · 0 评论 -
SQL查询优化 LEFT JOIN和INNER JOIN
【转】SQL查询优化 LEFT JOIN和INNER JOIN2011-08-18 14:32转载自 分享最终编辑 L_rigiditySQL查询优化 LEFT JOIN和INNER JOIN 1,连接了八个数据库表,而且全部使用LEFT JO转载 2011-09-23 16:07:04 · 1169 阅读 · 0 评论 -
SQL语句优化
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):orACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driv转载 2011-09-23 15:43:56 · 400 阅读 · 0 评论 -
SQL语句优化技术分析
最近几周一直在进行数据库培训,老师精湛的技术和生动的讲解使我受益匪浅。为了让更多的新手受益,我抽空把SQL语句优化部分进行了整理,希望大家一起进步。一、操作符优化1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用I转载 2011-09-23 16:09:45 · 805 阅读 · 0 评论 -
Oracle存储过程
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lichen.blog.51cto.com/697816/169020 先来一个简单的例子,有个感性认识.createorreplaceprocedure test is<br />aa number; <br />begin <br />selectcount(*) into aa from t_server_server; <br />DBMS_OUTPUT.PUT_LINE(aa转载 2011-04-14 10:02:00 · 847 阅读 · 0 评论 -
优化数据库的方法及SQL语句优化的原则
优化数据库的方法: 1、关键字段建立索引。 2、使用存储过程,它使SQL变得更加灵活和高效。 3、备份数据库和清除垃圾数据。 4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5、清理删除日志。 SQL语句优化的原则: ◆1、使用索引来更快地遍历表 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。转载 2011-05-16 10:12:00 · 632 阅读 · 0 评论 -
Java jdbc数据库连接池总结
<br />http://www.yuanma.org/data/2007/0118/article_2143_1.htm<br /> <br />1. 引言 <br /> 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机<br /> 应用程序已从传统的桌面应用转到Web应用。基于B/S(Browser/Server)架构的3层开发模式逐渐取代C/S(Client/Server)架构的开发模式,成为开发企业级应用和电子商务普遍采用的技术。在Web应用开发的转载 2011-05-15 19:02:00 · 713 阅读 · 0 评论 -
MySQL数据库性能优化六大技巧
数据库表表面上存在索引和防错机制,然而一个简单的查询就会耗费很长时间。Web应用程序或许在开发环境中运行良好,但在产品环境中表现同样糟糕。如果你是个数据库管理员,你很有可能已经在某个阶段遇到上述情况。因此,本文将介绍对MySQL进行性能优化的技巧和窍门。1.存储引擎的选择如果数据表需要事务处理,应该考虑使用InnoDB,因为它完全符合ACID特性。如果不需要事务处理,使用默认存储引擎MyI转载 2011-11-19 15:23:51 · 613 阅读 · 0 评论 -
InnoDB数据库存储引擎
InnoDB 是 MySQL 上第一个提供外键约束的数据存储引擎,除了提供事务处理外,InnoDB 还支持行锁,提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量。InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最有效率的。InnoDB 是一套放在 MySQL 后台的完整数据库系统,I转载 2011-11-19 15:29:18 · 450 阅读 · 0 评论