数据库对象的优化

关于mysql数据库对象的优化随笔

本文章只是作者自己感悟,须有不恰当之处,还望劳累指出

本章主要说的是运用一些语句和方法让数据库的结构更加优化,查询数据更加快。

EXPLAIN SELECT * FROM wx

EXPLAIN根据词义就可知道,“解释”,解释sql语句的执行,放置在sql语句前后可以查看到这条sql语句的执行属性,我们会得到一些很有意思的值,比如说key,指示查询时使用的是哪个索引。rows这条指的就是查询的时候查询了多少条数据。

另外条语句

PROCEDURE ANALYSE()

查看当前表的一些信息,根据词义‘过程分析’(个人认为很多的一些方法都是英文直接命名的,记忆的时候可以查看下他的含义,更好的理解这个方法 的作用)。像词义一样分析,我们使用

select * from table_name procedure analyse();

PROCEDURE ANALYSE()分析整张表的所有列,这里看来作用主要是修改列的长度,根据给出的统计值来优化列

此外还有些知识来完善表

这里的几乎上都是些修改表,及在公司中数据库已经建好,在日后的使用中有不恰当的地方来进行修改。

当我们数据表太大时会带来查询速度的变慢,这时候需要优化我们的数据表,我们除了可以使用索引来优化外还可以使用拆分表

就好像我们去吃一大块肉会不好吃进去,如果切成若干小块就好吃多了,所以当我们的数据表太大影响查询时,我们改使用拆分了

拆分有两种方式,

一种是水平拆分,拆分数据,把一列或多列的数据放到另外的不关联的表中,这样降低查询数量,提高查询速度,这里使用于数据本身独立性较高的数据,

另一种方式是垂直拆分(好吧,就像数据中一样是行和列组成的,那有了行的拆分,自然就还有列的拆分)行是数据,列则是数据库的列,所以这种拆分方式是把主码和一部分列放在另一个表,对于一些不常用的列来说就可以使用这种方法

还有一种方式是逆范式,违反第三范式的要求,这里无非是个度,需要自己根据自己情况来把握,太按照范式的话表之间的连接就会增加,一些简单的操作也会使用那么多的资源,影响使用。 这里就需要我们自己把握这个度,在什么地方使用第三范式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值