实验7——数据库存储和优化

《数据库系统实验》

实验报告

题目

实验7——数据库存储和优化

一、实验环境:

1、操作系统:Windows 11 22H2;

2、DBMS :mysql 8.0 CE;

二、实验内容与完成情况

7.3 索引的使用效果测试。参照实验示例上机操作,增大test表的记录到8万条或更多,重做实验。多次记录耗时,并作分析比较。

在教学管理系统(jxgl)中创建表test,并插入8万条记录。

创建表:

Create table test (id int unique AUTO_INCREMENT, rq datetime null, srq varchar (20null,

hh smallint null, mm smallint null, ss smallint nullnum numeric (12,3), primary key (id))

AUTO_INCREMENT= 1 engine=MyISAM;

创建存储过程生成表中数据:

DELIMITER //

CREATE PROCEDURE p1()

begin

set @i 1;

WHILE @i <= 80000 do

INSERT INTO TEST (RQ, SRQ, HH, MM, SS, NUM)

VALUES (NOW() ,NOW() , HOUR(NOW()),

MINUTE (NOW()), SECOND (NOW()), RAND (@i) * 100);

set @i @i 1;

END WHILE;

End//

调用存储过程:

call p1//

DELIMITER;

7.3.1 未建索引时按以下步骤操作

1)单记录插入(约16ms

SQL语言:

Select @i :=max(idfrom test;

INSERT INTO TEST (RQ, SRQ, HH, MM, SS, NUM)

VALUES (NOW (), NOW (), HOUR (NOW ()),

MINUTE (NOW ()), SECOND (NOW()), RAND (@i) * 100);

结果:

2)查询所有记录,按id排序(约1031ms

查询之前,我们应该打开Edit->Preferences,关闭limit rows 选项。

SQL语言:

Select * from test order by id;

结果:

3 查询所有记录,按mm排序(约1031ms

SQL语言:

Select * from test order by mm;

结果:

4 单记录查询(约0ms

SQL语言:

Select id from test where id51;

结果:

7.3.2 test表的mm字段建立非聚集索引

1 建立索引耗时(约2531ms

SQL语言:

Create index indexname1 on test(mm);

结果:

2 单记录插入(约0ms,插入命令同“单记录插入”。

结果:

3 查询所有记录,按id排序(约985ms,查询命令同“查询按id排序”。

结果:

4 查询所有记录,按mm排序(约1000ms,查询命令同“查询按mm排序”。

结果:

5 单记录查询(约0ms),查询命令同“单记录查询”。

结果:

6)删除索引(约2375ms)。

SQL语言:

Drop index indexname1 on test;

结果:

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值