我们知道,一个好的数据库设计方案对于数据库的性能常常会起到事半功倍的效果。因此作为数据库设计人员,我们在设计数据库时,往往要考虑到一些措施来对数据库进行优化。本文我们就简单介绍一下MySQL数据库设计时的一些优化措施,希望能够对您有所帮助。
1、命名的技巧与规范
无论什么设计,命名都应该作为非常重要的事情来看待,表、序列、字段、索引的命名技巧可以归结如下:
(1) 序列名字跟表字段名字相同
例如:insert into users(us_id)value(us_id.nextval)
SQLServer、DB2等数据库中是没有序列的含义的。
(2) 关联表的名称应该是被关联的表用“_”连接起来组成的
例如:我们已经设计关联是多对多的表authors和表books了,那么我们的关联表便可以命名为authors_books.
(3) 关联字段名称必须相同,名称以基础表的字段名称为准
例如:authors表中有as_id、as_name字段。
(4) 字段定义的前两位是表名的缩写,第三位是下划线
例如:us_id、us_name、bk_name、bk_time.
第一,保证规范,序列名称必须是唯一的,而且,一般的序列就是这个表的id字段。如果不加前缀,那么字段都叫做id就会违背惟一性原则。
第二,为了将来关联查询语句的书写方便。
(5) 常用字段采用固定定义
例如:序列:id 是否删除:delornot
(6) 索引的名字和表的名字相同
为了提高大数据量的表格的查询速度,可以采用建立适当的索引方式。如果一个表只有一个索引,建议索引的名字跟表相同,如果有多个索引,则为表名称加下划线加索引列名称。
2、优化设计的技巧
(1) 关联字段类型尽可能定义为数字类型
例如:us_id, bk_id等类型都应该设计成数字类型。
(2) 表的序列字段必须是数字类型
原因同上。
(3) 如果一个字段需要经常更改,则采用以空间换时间的设计方法
最常见的例子是用户积分登录次数的累加,按照范式设计,在users表中建立一个字段us_scores,以后需要在用户积分改变时采用update的语句进行修改。但是知道 update语句的执行速度是很慢的,为了避免大量重复使用它,优化的设计方案是建立us_scores表,存储每次增加的积分,在查询是采用SQL语句的sum方法来计算之。
(4) 若数据库有移植的可能性,不使用存储过程及触发器
(5) 建立恰当的索引
索引的建立是加快数据库查询的基本技巧之一,通常的建议是,只有百万级的记录的表格才应该建立索引。
3、如何保证数据的安全性
最安全的设计方案是,Web数据库和测试数据库分离。Web数据库权限只被管理员一个人掌握。
关于MySQL数据库设计的优化措施就介绍这么多了,希望本次的介绍能够对您有所帮助。