自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 MySQL——死锁

MYISAM表锁是deadlock free的,这是因为MyISAM总是一次获得所需的全部所,要么全部满足,要么等待,因此不会出现死锁。但是InnoDB中,除单个SQL组成的事务外,锁是逐步获得的,这就决定了发生了死锁的可能。解决死锁主要有以下集中方式: 1、在应用中,如果不同的程序会并发存取多个表,应尽量约定以相同的顺序来访问表。 2、在程序以批量方式处理数据的时候,如果事先对数据排序,保证每

2016-05-16 15:26:01 337

原创 MySQL——InnoDB行锁

1、InnoDB行锁是通过给索引上的索引项加锁实现的,如果没有索引,InnoDB将通过隐藏的聚簇索引来对记录加锁。 简单地说:如果不通过索引条件检索数据,那么InnoDB将对表中的所有记录加锁,实际效果跟表锁一样。 具体如下:在不通过索引条件查询时,InnoDB会锁定表中的所有记录。如果是使用相同的索引键,会出现锁冲突。

2016-05-16 14:16:21 2665

原创 Mysql——锁问题

1、概述 不同的存储引擎支持不同的锁机制,MyISAM和MEMORY存储引擎采用的是表级锁;BDB存储引擎采用的是页面锁,也支持表级锁;InnoDB则即支持行级锁,也支持表级锁,默认是行级锁。表级锁:开销小,加锁快;不会出现死锁;锁定粒度小,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和

2016-05-14 21:59:07 283

原创 MYSQL的常用SQL的优化

1、大批量插入数据针对MyISAM表 alter table tb1_name DISABLE KEYS; loading the data alter table tb2_name ENABLE KEYS; 上述两个句子主要用来打开或者关闭MyISAM表非唯一索引的更新,在导入大量的数据岛一个非空的MyISAM表时,通过这样的设置可以提高导入的效率,对于空的没有影响,因为默认就是先导入

2016-05-12 22:07:07 499

原创 SQL优化--索引

MYSQL目前支持4种索引:B-Tree索引:最常见的索引类型,大部分引擎都支持B树索引。Hash索引:只有Memory引擎支持,使用场景简单。R-Tree索引(空间索引) :空间索引是MyISAM的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少。Full-Text(全文索引):也是MyISAM的一个特殊索引类型,主要用于全文索引,InnoDB从MySQL5.6版本开始提供对全文索

2016-05-10 14:06:44 248

原创 SQL优化--发现问题

1、Mysql客户端连接成功后,通过show status命令可获取服务器状态信息。通过判断com_insert和com_select以及更新和删除来判断当前数据库的应用是以插入更新为主还是以查询操作为主,以及更重类型的SQL大致的执行比例是多少。注意,对于更新操作的计算,是对执行次数的技术,不论提交还是回滚都会进行累加。 2、接着通过两种方式定位执行效率较低的SQL语句:通过慢查询日志定位那些

2016-05-09 21:59:00 248

原创 Mysql学习笔记1

一次性插入多条记录: insert into tablename(field1,field2,…,fieldn) values(record1_value1,record1_value2,…,record1_valuen),(…)having和where的区别在于,having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录

2016-05-06 15:26:32 235

空空如也

空空如也

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

TA关注的人

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