INDEX--关于索引的琐碎
--=========================================================
更新时的操作
1>更新时有两种方式,一种是在原来的位置更新,另外一种是移除删除再插入。
2>无论采用何种方式更新数据,在触发器中都能使用DELETED和INSERTED表来获取更新前和更新后数据。
--=========================================================
--8亿数据创建非聚集索引时间
数据表中数据:873476300
建立索引耗时:41分39秒
索引键:BIGINT+DATETIME+INT
服务器配置:8核32G内存 7块SAS硬盘做成的RAID5,内存资源不足
--=========================================================
堆表和聚簇表测试
INSERT: 当数据库文件单次增长较小时,聚簇表插入效率会相对高,但当当数据库文件单次增长较大时,数据文件不需要频繁增长,堆表的插入效率略高于聚簇表。
SELECT/UPDATE/DELETE:聚簇表性能高于堆表(聚簇索引被使用时)
表无须额外增加过多空间来存放聚簇索引,只需少量空间存放非叶子节点
--=========================================================
DML操作在聚簇索引和非聚簇索引上的顺序
测试结论:
1>在插入数据时,先插入聚簇索引,再插入非聚簇索引
2>在更新数据时,先更新聚簇索引,再更新非聚簇索引
3>在删除数据时,先将非聚簇索引上数据MARK AS GHOST,然后再将聚簇索引上数据MARK AS GHOST,再删除聚簇索引上数据,最后移除非聚簇索引上数据
--=========================================================
数据的物理顺序和聚簇索引的顺序完全一致吗?
结论:在同一数据页上,数据的顺序和Slot的顺序一致,但数据不一定依次存放在依次递增的数据页上(逻辑碎片)
INDEX--关于索引的琐碎的更多相关文章
- mysql force index() 强制索引的使用
mysql force index() 强制索引的使用 之前跑了一个SQL,由于其中一个表的数据量比较大,而在条件中有破坏索引或使用了很多其他索引,就会使得sql跑的非常慢... 那我们怎么解决呢? ...
- MySQL force Index 强制索引概述
以下的文章主要介绍的是MySQL force Index 强制索引,以及其他的强制操作,其优先操作的具体操作步骤如下:我们以MySQL中常用的hint来进行详细的解析,如果你是经常使用Oracle的 ...
- 基础:从概念理解Lucene的Index(索引)文档模型
转:http://blog.csdn.net/duck_genuine/article/details/6053430 目录(?)[+] Lucene主要有两种文档模型:Document和Fi ...
- 不允许对索引显式地使用 DROP INDEX,该索引正用于 UNIQUE KEY
[转载]http://blog.csdn.net/w87875251l/article/details/7929657 不允许对索引显式地使用 DROP INDEX,该索引正用于 UNIQUE KEY ...
- Lucene——Field.Store(存储域选项)及Field.Index(索引选项)
Field.Store.YES或者NO(存储域选项) 设置为YES表示或把这个域中的内容完全存储到文件中,方便进行文本的还原 设置为NO表示把这个域的内容不存储到文件中,但是可以被索引,此时内容无法完 ...
- ORACLE Index Lookup索引访问路径总结
在ORACLE中,索引访问/查找(Index Lookup)路径有五种方式,分别为INDEX UNIQUE SCAN.INDEX RANGE SCAN.INDEX FULL SCAN.INDEX FA ...
- MySQL 优化之 index merge(索引合并)
深入理解 index merge 是使用索引进行优化的重要基础之一.理解了 index merge 技术,我们才知道应该如何在表上建立索引. 1. 为什么会有index merge 我们的 where ...
- JsRender for index 循环索引使用说明
循环是模版引擎必不可少的一部分,而说起循环,会引出一个至关重要的因素:索引. 所谓索引,即循环次数,通过索引,可以获取当前循环是第几次. 如果读者阅读过官方文档,会见到如下获取索引的方式: data: ...
- Mysql_mysql force Index 强制索引
其他强制操作,优先操作如下: mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的h ...
- PLSQL_性能优化系列13_Oracle Index Rebuild索引重建
2014-10-04 Created By BaoXinjian
随机推荐
- Delphi 画箭头
procedure TForm1.Line(x, y, x2, y2: integer); begin canvas.MoveTo(x, y); canvas.LineTo(x2, y2); end; ...
- YUV图像合成原理<转>
YUV图像合成原理 引言:在视频监控中最常用的就是图像拼接和字符叠加,25FPS的视频流,如果每隔40MS就从各个通道中取一幅图像来合成,则可以看到一个实时的合成视频.合成的过程也就是原始图像的拼接. ...
- Thread(线程)三
今天我们继续接着线程讲讲,上一章提到一下task概念, 首先接着task继续往下讲,在前章节提到过Thread怎么实现其他线程完成后再让主线程继续执行的功能,那么如果Task也需要线程等待事件,该怎么 ...
- django-rest-swagger
前提工作 pip3 install --user django>=2.0.0 pip3 install --user django-rest-swagger 安装完成之后,创建一个django项 ...
- MYSQL的随机查询的实现方法
的确是那么回事. MYSQL的随机抽取实现方法.举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() ...
- Mysql 使用触发器,把插入的数据在插入到宁一张表里
CREATE TRIGGER tgr_tablea_insert AFTER //触发器名字 动作在插入数据之后 ON alertinfo //监听哪个表之后触发 FOR INSERT //监听的表的 ...
- zabbix自动发现监控mysql
一. 数据库给只读权限 1.1 grant usage on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix'; flush privileges; ...
- vue与django中预防CSRF
一.环境: vue2.0.django 1.10.x.iview 二.django后台处理 1.将django的setting的MIDDLEWARE中加入django.middleware.csrf. ...
- python基础之-数据类型
Python3 数字(Number) Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 以下实例在变量赋值时 Number 对 ...
- MicroRNA 详解
MicroRNA研究历史和方法 Views 88 1Report