本篇博客是我们mysql优化部分的最后一篇博文了,今天我们从数据库本身出发,了解我们应该从数据库内部入手,如何进行优化。
首先是优化表的类型,其次对于大数据量存储可以拆分表来提高访问效率,最后就是使用中间表提高查询的效率。
优化表类型:
1)主键id是自增类型的时候,我们仅通过drop命令是不能删除主键的。
做法就是先修改id列,去掉自增类型,然后在drop主键:
2)通过建立一个库,然后通过简单的命令就可以将另一个库里面的所有数据全部复制到新建立的库中:
3)建立一个视图需要关联两个以上的表,如果其中的一个表变化之后,视图也会自动发生变化:
下面是删除里id=1的数据,查看视图
视图中的id=1的数据也没有了。
大数据量存储分表、分区:
(1)分表
所谓的分表,就是将一个大的数据库表分成若干个小的数据库表,分为垂直分割和水平分割两种:
垂直分割:这种分割方式的优势在降低了高并发的同时,对于表也进行了一定量的锁定。
水平分割:
这种分割方式也是最常用的,我们可以看成把整个数据库分成了若干页,然后通过一个表记录了每一页的位置,类似于一本书分成了若干页,书的前面有一个目录索引的形式。当我们的需求是需要查询某个段的数据的时候,我们可以直接检索我们的目录索引,直接定位到数据的具体位置查询,这样避免了全表扫描带来的低查询效率。
(2)分区:
分区就是将一个表中的数据分成不同的若干块,这些块可以在同一个物理磁盘上放置,也可以不在同一个物理磁盘上放置。
在对于数据库优化方面,分区和分表可以相互配合,对于大访问量的数据,如果表比较多的话,我们可以采用分表和分区结合的方式,如果访问量不大,但是数据很多的表,我们就可以对某些表进行数据分区的形式。
以上四篇博客就是我最近对于mysql优化部分进行的所有的研究学习。对于如何优化我们的Mysql,最主要的还是根据我们具体项目的具体需求来确定,希望更多的在实践中磨练。