自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (3)
  • 收藏
  • 关注

转载 [慢查优化]建索引时注意字段选择性 & 范围查询注意组合索引的字段顺序

写在前面的话:之前曾说过“不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程”,但对于字段选择性差意味着什么,组合索引字段顺序意味着什么,要求每个人必须了解;重复上一次的话:把mysql客户端(如SQLyog,如HeidiSQL)放在桌面上,时不时拿出来 explain 一把,这是一种美德!确保亲手查过SQL的执行计

2015-08-19 11:55:01 501 1

转载 [慢查优化]联表查询注意谁是驱动表 & 你搞不清楚谁join谁更好时请放手让mysql自行判定

写在前面的话:   不要求每个人一定理解 联表查询(join/left join/inner join等)时的mysql运算过程;   不要求每个人一定知道线上(现在或未来)哪张表数据量大,哪张表数据量小;    但把mysql客户端(如SQLyog,如HeidiSQL)放在桌面上,时不时拿出来 explain 一把,这是一种美德!在实例讲解之前,我们先回顾一下

2015-08-19 11:54:20 582

转载 Mysql数据库索引查询优化的分享

这是昨天SAE分享的一篇文章,开始的时候,我看了一遍,发现好象没有什么特别的内容,但再仔细看的时候,发现居然可以这样做。。。     问题描述:      我们要访问的表是一个非常大的表,四千万条记录,id是主键,program_id上建了索引。      执行一条SQL:select * from program_access_log where progra

2015-08-19 11:53:07 388

转载 MySQL索引和查询优化的实际操作

以下的文章主要介绍的是MySQL索引和查询优化的实际操作流程,我们大家都知道MySQL索引和查询优化在实际操作中出现的比例较高,所以对其有更深的了解会在你今后的学习中有所收获所。恰当的索引可以加快查询速度,可以分为四种类型:主键、唯一索引、全文索引、普通索引。主键:唯一且没有null值。create table pk_test(f1 int no

2015-08-19 11:52:30 442

转载 [慢查优化]慎用MySQL子查询,尤其是看到DEPENDENT SUBQUERY标记时

写在前面的话:在慢查优化1和2里都反复强调过 explain 的重要性,但有时候肉眼看不出 explain 结果如何指导优化,这时候还需要有一些其他基础知识的佐助,甚至需要了解 MySQL 实现原理,如子查询慢查优化。看到 SQL 执行计划中 select_type 字段中出现“DEPENDENT SUBQUERY”时,要打起精神了!——MySQL 的子查询为什么有

2015-08-19 11:51:24 4966 1

转载 MySQL性能优化小记:MySQL子查询很慢的问题

今天碰到一个数据库问题,需要用到子查询,但尝试了一下发现它很慢:mysql> select * from abc_number_prop where number_id in (select number_id from abc_number_phone where phone = '82306839');为了节省篇幅,省略了输出内容,下同。67 rows in

2015-08-19 11:50:39 12477

转载 SQL优化大全

1. 优化SQL步骤1. 通过 show status和应用特点了解各种 SQL的执行频率       通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。       如显

2015-08-19 11:49:48 422

转载 关于mysql inner join 连接查询的优化

在使用查询语句时,inner join,left join,right join等这些联接语句,想必大家并不陌生,而且经常会用到,联接达到了我们想要的结果,可是当数据越大越大的时候,会发现查询很慢,往往只是加索引进行优化,可是有时候,索引并不能解决问题,这时就束手无策了! 下面以真实的例子说明这个问题,下面有二张表,一张rank(排行榜),10000余条数据,一张person(人物

2015-08-19 11:49:07 709

转载 MySQL中like语句及相关优化器tips

背景         MySQL中在对某个字段做包含匹配时可以用like。先看这个结构和结果 CREATE TABLE `tb` (   `id` int(11) NOT NULL AUTO_INCREMENT,  `user_id` bigint(20) DEFAULT NULL,  `title` varchar(128)

2015-08-19 11:48:18 83

转载 两种常用MySql查询时间段的方法

MySql查询时间段的方法很多,下面就为您介绍几种最常用的MySql查询时间段方法,如果您在MySql查询时间段方面遇到过问题,不妨一看。MySql的时间字段有date、time、datetime、timestamp等,往往我们在存储数据的时候将整个时间存在一个字段中,采用datetime类型;也可能采用将日期和时间分离,即一个字段存储date,一个字段存储时间time。无论怎么存储,在实

2015-08-19 11:47:33 587

转载 大型web系统中缓存的使用

对于一个规模很大的web系统,如PV在一亿以上,缓存就是一个不可或缺的重要组成部分,它可以挡掉大部分的用户访问的冲击,如果没有它,系统很可能将迅速不可用直至崩溃。但是缓存带来了另外一些棘手的问题: 一致性和实时性。一个很直观的场景就是,数据库中的数据状态已经改变,但是用户在页面上看到的仍然是缓存的旧值。一般来说,缓存数据本身都是保持在内存中的,例如淘宝内部大量使用的tair

2015-08-13 14:28:09 1413

转载 MysqlReport解析

MySQL 效能监控工具--mysqlreport 管理 MySQL 最让人困扰的就是如何有效的掌握 MySQL 的健康状况,因为 MySQL 虽然有提供许多系统变量值供您参考,但这些零散的数据若要手动搜集与过滤将会是一件十分没有效率的事情(除非您写 Scripts 去分析)。而接下来要介绍的这套 "工具" 其实是由 hackmysql.com 的站长所撰写的 Perl Scritps,旨在协

2015-08-12 14:48:07 334

转载 MySQL数据恢复--binlog

MySQL Binary Log也就是常说的bin-log,,是mysql执行改动产生的二进制日志文件,其主要作用有两个:* 数据恢复 * 主从数据库。用于slave端执行增删改,保持与master同步。 1.开启binary log功能      需要修改mysql的配置文件,本篇的实验环境是win7,配置文件为mysql安装目录\MySQL Server 5.1下的my

2015-08-12 14:47:30 363

转载 MySQL基本概念--索引&索引类型

索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  );   我们随机向里面插入了

2015-08-12 14:44:15 426

转载 《高性能MySQL》读书笔记--索引

索引(在MYSQL中也叫做键),是存储引擎用于快速找到记录的一种数据结构。写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上

2015-08-12 14:43:22 374

转载 MySQL详解--锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL

2015-08-12 14:37:54 535

转载 MySQL查询优化:用子查询代替非主键连接查询

一对多的两张表,一般是一张表的外键关联到另一个表的主键。但也有不一般的情况,也就是两个表并非通过其中一个表的主键关联。例如:[sql] view plaincopycreate table t_team  (  tid int primary key,  tname varchar(100)  );    cr

2015-08-10 16:07:41 2490

转载 Logback介绍及入门

Logback简介Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便

2015-08-10 13:25:07 426

转载 在 Web 应用中增加用户跟踪功能

进行用户跟踪的重要性随着 Web 应用的复杂化,用户在网站上的操作过程日益复杂。网站功能的多样化和交互性的提高为用户提供了多种可能的浏览路径。对于一个复杂的站点,用户在网站上操作的行为模式和操作习惯的分析,会给网站的优化提供基础的数据支持。而从技术上要为这种分析提供支持,就需要记录下每个用户在网站上的操作过程。另一方面,这种数据的记录也有助于解决用户在使用中出现的问题。我们只要知道用户遇到

2015-08-10 13:20:59 1049

转载 log4j日志输出性能优化-缓存、异步

1、log4j已成为大型系统必不可少的一部分,log4j可以很方便的帮助我们在程序的任何位置输出所要打印的信息,便于我们对系统在调试阶段和正式运行阶段对问题分析和定位。由于日志级别的不同,对系统的性能影响也是有很大的差距,日志级别越高,性能越高。 2、log4j主要分为error,warn,info,debug四个级别,也是使用最多的四种,日志级别从左至右依次增加。3、log4j对

2015-08-10 13:19:33 1284

转载 Log4j最佳实践

本文是结合项目中使用Log4j总结的最佳实践,非转载。网上可以找到的是这一篇《Log4j最佳实践》。本来Log4j使用是非常简单的,无需多介绍其用法,这只是在小型项目中;但在大型的项目中使用log4j不太一样。大型项目非常依赖日志,因为解决线上问题必须依靠log,依靠大量的日志!线上出现问题往往不能重现,而且无法调试,log是必须中的必须,解决线上问题全靠它。本文内容:大型项目中Log4j

2015-08-10 13:16:51 1293

转载 浅谈管理系统操作日志设计(附操作日志类)

管理系统的操作日志如何做成通用的模块一直是个让我头疼的问题,不过看了博客园里的某篇文章后,现在基本解决了。  相关文章链接:《系统操作日志设计》  在开始做之前,必须把两个日志分清楚,那就是普通操作日志和业务操作日志,这两者有何区别?  在我理解,普通操作日志就是单表的操作记录,而业务操作日志则就是一系列的普通操作日志的集合。  打个比方,用户需要购买一样宝贝,已经

2015-08-10 13:14:33 21095

转载 系统操作日志设计

前言 我们在做企业管理系统时,有多多少少都有对数据的完整性有所要求,比如要求系统不能物理删除记录,要求添加每一条数据时都要有系统记录、或者更新某条数据都需要跟踪到变化的内容、或者删除数据时需要记录谁删除了,何时删除了,以便误删后可以通过系统的XXX功能来恢复误删的数据。我将这种功能称为操作日志为什么要做操作日志?其实上文也描述了一些,其主要目的就是跟踪到每一个用户在系统的操作行

2015-08-10 13:12:32 1556

转载 日志记录的作用和方法

程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态。好的日志记录方式可以提供我们足够多定位问题的依据。日志记录大家都会认为简单,但如何通过日志可以高效定位问题并不是简单的事情。这里列举下面三个方面的内容,辅以代码示例,总结如何写好日志,希望对他人有所启发和帮助:怎样记日志可以方便Troubleshooting程序运行状态可以记哪些应该避免怎样的日志方

2015-08-10 13:10:46 476

转载 不要迷恋行锁,行锁只是传说

不要迷恋行锁,行锁只是传说SQL的锁会自动升级。应想法提高整体的性能,比如一般一次更新整批数据比一条一条更新效率高,更新何删除的条件一定要有好的索引

2015-08-06 00:09:28 382

转载 如何加锁

如何锁一个表的某一行 A 连接中执行 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ begin tran select * from tablename with (rowlock) where id=3 waitfor delay '00:00:05' commit tran B连接中如果执行 update tab

2015-08-06 00:06:57 467

转载 死锁产生的原因和解决

其实所有的死锁最深层的原因就是一个:资源竞争 表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B 另一个用户B 访问表B(锁住了表B),然后企图访问表A 这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,好了他老人家就只好老老实实在这等了 同样用户B要等用户A释放表A才能继续这就死锁了解决方法: 这种死锁是由于你的程序的B

2015-08-06 00:05:31 4741

转载 脏读、不可重复读和虚读

博文来自这里脏读 dirty reads:当事务读取还未被提交的数据时,就会发生这种事件。举例来说:Transaction 1 修改了一行数据,然后 Transaction 2 在 Transaction 1 还未提交修改操作之前读取了被修改的行。如果 Transaction 1 回滚了修改操作,那么 Transaction 2 读取的数据就可以看作是从未存在过的。不可重复的读 non-r

2015-08-03 16:15:30 4275

转载 脏读、不可重复读 共享锁、悲观锁 和 事务五种隔离级别

博文来自这里一、脏读、不可重复读、幻读1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。例如:  张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。  与此同时,  事务B正在读取张三的工资,读取到张三的工资为8000。  随后, 

2015-08-03 16:14:42 1148

转载 MySQL数据库事务隔离级别(Transaction Isolation Level)

数据库隔离级别有四种,应用《高性能mysql》一书中的说明: 然后说说修改事务隔离级别的方法:1.全局修改,修改mysql.ini配置文件,在最后加上1 #可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.2 [mysqld]3 transactio

2015-08-03 16:11:20 449

转载 Hibernate事务与并发问题处理(乐观锁与悲观锁)

Hibernate事务与并发问题处理(乐观锁与悲观锁)一、数据库事务的定义  数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为

2015-08-03 16:08:07 351

转载 mysql的索引和锁的微妙关系

博文来自这里做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为 Select   restnum  from  book  where  id =1 ;    –如果restnum大于0,执行update Update   book  set restnum

2015-08-03 16:04:37 530

转载 mysql乐观锁总结和实践

博文转自这里上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁

2015-08-03 14:45:04 393

转载 mysql悲观锁总结和实践

博文转自这里最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本

2015-08-03 14:43:17 312

maven生成可执行exe文件

将java生成可执行exe文件,可以直接在win下双击运行

2014-06-07

解决putty中文乱码---puttycn

是不是在为远程连接linux中文乱码而烦恼呢?那就赶快来使用puttycn吧,不再烦心中文乱码

2014-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除