
mysql
文章平均质量分 70
依然小黄
这个作者很懒,什么都没留下…
展开
-
SQL优化--发现问题
1、Mysql客户端连接成功后,通过show status命令可获取服务器状态信息。通过判断com_insert和com_select以及更新和删除来判断当前数据库的应用是以插入更新为主还是以查询操作为主,以及更重类型的SQL大致的执行比例是多少。注意,对于更新操作的计算,是对执行次数的技术,不论提交还是回滚都会进行累加。 2、接着通过两种方式定位执行效率较低的SQL语句:通过慢查询日志定位那些原创 2016-05-09 21:59:00 · 282 阅读 · 0 评论 -
SQL优化--索引
MYSQL目前支持4种索引:B-Tree索引:最常见的索引类型,大部分引擎都支持B树索引。Hash索引:只有Memory引擎支持,使用场景简单。R-Tree索引(空间索引) :空间索引是MyISAM的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少。Full-Text(全文索引):也是MyISAM的一个特殊索引类型,主要用于全文索引,InnoDB从MySQL5.6版本开始提供对全文索原创 2016-05-10 14:06:44 · 282 阅读 · 0 评论 -
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 · 567 阅读 · 0 评论 -
Mysql——锁问题
1、概述 不同的存储引擎支持不同的锁机制,MyISAM和MEMORY存储引擎采用的是表级锁;BDB存储引擎采用的是页面锁,也支持表级锁;InnoDB则即支持行级锁,也支持表级锁,默认是行级锁。表级锁:开销小,加锁快;不会出现死锁;锁定粒度小,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和原创 2016-05-14 21:59:07 · 314 阅读 · 0 评论 -
MySQL引擎
转载: MySQL引擎 MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。下面介绍几种数据库引擎:ISAM:ISAM是一个定义明确且历经转载 2016-04-25 18:04:50 · 620 阅读 · 0 评论 -
MySQL——InnoDB行锁
1、InnoDB行锁是通过给索引上的索引项加锁实现的,如果没有索引,InnoDB将通过隐藏的聚簇索引来对记录加锁。 简单地说:如果不通过索引条件检索数据,那么InnoDB将对表中的所有记录加锁,实际效果跟表锁一样。 具体如下:在不通过索引条件查询时,InnoDB会锁定表中的所有记录。如果是使用相同的索引键,会出现锁冲突。原创 2016-05-16 14:16:21 · 2721 阅读 · 0 评论 -
MySQL——死锁
MYISAM表锁是deadlock free的,这是因为MyISAM总是一次获得所需的全部所,要么全部满足,要么等待,因此不会出现死锁。但是InnoDB中,除单个SQL组成的事务外,锁是逐步获得的,这就决定了发生了死锁的可能。解决死锁主要有以下集中方式: 1、在应用中,如果不同的程序会并发存取多个表,应尽量约定以相同的顺序来访问表。 2、在程序以批量方式处理数据的时候,如果事先对数据排序,保证每原创 2016-05-16 15:26:01 · 367 阅读 · 0 评论 -
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 · 276 阅读 · 0 评论