archive储存引擎的应用场景就是它的名字的缩影,主要用于归档。archive储存引擎仅支持select和insert,最出众的是插入快,查询快,占用空间小。例如我们有大量的历史数据极少访问又不能删除,需要保存,那么它是非常不错的选择。archive最出名的就是压缩,它的引擎使用zlib无损数据压缩算法,压缩率非常好,这里测试下效果。
(1).首先创建一个myisam的表member,字段id和name,我们插入4990168条记录(自己循环下)
INSERT INTO member(id, name) VALUES (1, 'zhang')
(2).此时来查看member表在myisam引擎下的占用磁盘大小:
show TABLE STATUS LIKE 'member';
输出结果:
Data_length:99803360
占用大小:99803360约等于95M磁盘大小
(3).创建archive引擎表member1,并将上面的myisam表数据导入
CREATE TABLE member1 ENGINE = archive as SELECT * from member
(4).查看member1的archive引擎占用磁盘大小:
show TABLE STATUS LIKE 'member1';
输出结果:
Data_length:154003
占用大小:99803360约等于150KB磁盘大小
同样是4990168条记录,磁盘占用大小可怕吗?节省了648倍,此时本人已经不相信上面的操作,这占比太夸张,会不会是引用myisam表的数据了吧?直接干掉myisam表的数据。
DELETE FROM member; SELECT count(*) FROM member;
上面清空了myisam的表的数据,检查了表没有数据,再重启去看看archive储存引擎表的占用已经没有变化,我的天呐,归档类储存引擎这么夸张。
where与having非常类似.都能筛选数据.表达式完全一致. 但是职责的确不同.where负责对表中的字段进行筛选,having负责对where筛选后的结果集再次筛选。这也就是where不能使用别名字段来筛选的原因,因为数据中没有这个字段。&n...
我们从一个结果集中查询信息一般都是select * from (select...),每次都要编写from (select...)非常麻烦,于是我们将结果集保存起来,这就是视图的便利。创建视图的命令为:create view &nb...
1.查看所有表,包括视图表,show tables;2.查看表结果,包括视图表,desc 表名3.查看建表过程,show create table 表名;4.查看建视图过程,show create view...
1.floor(x)返回小于x的整数,向下取整,用法,商品的价格是浮点型的,需要向下取整 eg:select id,title,floor(price) from shopgoods2.rand()返回0-1之间的随机数 select rand() select rand()...
(1).首先我们需要了解limit分页的工作流程demo: SELECT * FROM table LIMIT 10000,5 通常我们会认为以上SQL会从10000条后面取5条,正确的是取出10005条,然后再抛弃前...
项目和第三方系统对接,由于第三方开发人员属于兼职,数据库结构不一致的问题只能我来处理。此处文章用本地模拟演示。数据库资料:1号服务器: 账号root 密码root IP:127.0.0.1 数据库名称:data1 2号服务器...