SQLite的教程(五):索引和数据分析/清理

1。创建索引:

在SQLite的SQL语法创建指标基本上是因为大多数的其他关系数据库一样,因为它是唯一使用的例子在这里了:

复制代码代码如下所示:

SQLite >创建表的数据(first_col second_col整数,整数);

-创建最简单的索引,该索引基于表的字段。

SQLite >创建数据索引testtable_idx(first_col);

-创建一个联合索引,它基于表的多个字段,并且可以指定每个字段的排序规则(升序/降序)。

SQLite >创建数据索引testtable_idx2(first_col ASC,second_col降序);

-创建一个唯一索引,它与数据表的唯一性约束相同,即null和任何值都不同,包括null本身。

SQLite数据>创建唯一索引testtable_idx3(second_col降序);

SQLite >指标数据。

testtable_idx

testtable_idx2

testtable_idx3



正如您从索引命令的输出中看到的,已经成功创建了三个索引。



两。删除索引:

索引的删除与视图的删除非常相似,情况也是如此,所以这里只是一个示例:复制代码代码如下所示:

SQLite >索引testtable_idx;

如果删除不存在的索引,则会导致操作失败。如果不希望在不确定性下抛出错误,可以使用如果存在子句。

SQLite >索引testtable_idx;

错误:没有这样的指标:testtable_idx

SQLite >索引是否存在testtable_idx;



三。重建索引:

重建索引用于删除现有的指标,同时重建基于原有的规定指标。需要说明的是,如果所有的数据库名称不重建的声明后,所有指标在所有连接数据库的当前连接的情况下将重建。如果数据库名和表名是指定的,表中所有指标将重建。如果只指定索引名称,则重建当前数据库的指定索引。

复制代码代码如下所示:

-目前连接到的所有数据库中的索引都已重建。

SQLite >重建;

-重构的数据表的所有指标在当前数据库。

SQLite >重新索引数据;

-重建索引命名testtable_idx2在当前数据库。

SQLite >重建testtable_idx2;



四。数据分析:

和PostgreSQL是在分析指令也用来分析内部系统表的数据表和索引的数据和统计结果将存储在SQLite数据库,SQLite非常相似,因此,查询优化器可以根据统计数据分析的路径实施后选择最优的查询,从而提高查询效率。看下面的例子:

复制代码代码如下所示:

-如果在分析命令之后没有指定参数,则分析当前连接中所有附加数据库中的表和索引。

SQLite >分析;

-如果将数据库指定为分析的参数,则将对数据库中的所有表和索引进行分析和生成统计数据。

SQLite >分析主要;

如果指定数据库中的表或索引是分析的参数,则将对表及其所有相关索引进行分析。

分析main.testtable SQLite >;

分析main.testtable_idx2 SQLite >;



五。数据清洗:

真空与PostgreSQL命令相比,它们的功能和实现方式非常相似,不同的是,PostgreSQL提供了更细的粒度,而SQLite只能在数据库命令的作用,不准确的数据库中指定的数据表或索引,但这恰恰是PostgreSQL可以做。

当数据库中有大量的插入、更新和删除操作时,删除的数据将占用大量磁盘空间。SQLite不返回给操作系统执行命令前的真空。因为这类数据表的数据存储是非常分散的,它是不可能得到一个更好的批处理IO的阅读效果在查询时,查询效率的影响。

在SQLite中,只有在当前连接的数据库主要是清理,和其他附加的数据库无法清理。真空命令和PostgreSQL使用同样的策略在数据清洗,即创建一个大小相同的新的数据库文件,数据库文件,然后导入数据组织成一个新的文件数据库文件已被删除,根据块的数量将不会被导入,完成导入新的数据库文件大小,缩小到适当的大小。该命令的执行是很简单的,如:

复制代码代码如下所示:

SQLite >真空;