SQLite数据表数量大时建索引的方法,SQLite索引知识归纳
SQLite虽然是本地数据库,但总有些表数据量达到几万的数量,这样一但和其它表联合查询再按没有索引的字段排序就会慢。
先看结论,再看实践过程
数据量达到几万时,有索引的查询比没索引可以快100倍。对有索引的字段进行排序比没索引的也快百倍。联合索引时,第一个字段单独作为条件或者作为排序时索引有效。
准备样例数据
--书本表
CREATE TABLE `t_book` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` INTEGER,
`author` INTEGER
);
--用户表
CREATE TABLE `t_user` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` INTEGER
);
--阅读记录表
CREATE TABLE `t_read` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`user_id` INTEGER,
`book_id` INTEGER,
`page` INTEGER,
`addTime` INTEGER DEFAULT (strftime('%s','now'))
);
INSERT INTO `t_book`(`name`,`author`) VALUES('书本001','作者001'), ('书本002','作者002'), ('书本003','作者003'), ('书本004','作者004'), ('书本005','作者005'), ('书本006','作者006'), ('书本007','作者007'), ('书本008','作者008'), ('书本009','作者009'), ('书本010','作者010'), ('书本011','作者011'), ('书本012','作者012'), ('书本013','作者013'), ('书本014','作者014'), ('书本015','作者015'), ('书本016','作者016'), ('书本017','作者017'), ('书本018','作者018'), ('书本019','作者019'), ('书本020','作者020'), ('书本021','作者021'), ('书本022','作者022'), ('书本023','作者023'), ('书本024','作者024'), ('书本025','作者025'), ('书本026','作者026'), ('书本027','作者027'), ('书本028','作者028'), ('书本029','作者029'), ('书本030','作者030'), ('书本031','作者031'), ('书本032','作者032'), ('书本033','作者033'), ('书本034','作者034'), ('书本035','作者035'), ('书本036','作者036'), ('书本037','作者037'), ('书本038','作者038'), ('书本039','作者039'), ('书本040','作者040'), ('书本041','作者041'), ('书本042','作者042'), ('书本043','作者043'), ('书本044','作者044'), ('书本045','作者045'