MySQL数据库设计时如何优化
小编给大家分享一下MySQL数据库设计时如何优化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1、命名的技巧与规范
无论什么设计,命名都应该作为非常重要的事情来看待,表、序列、字段、索引的命名技巧可以归结如下:
(1)序列名字跟表字段名字相同
例如:insertintousers(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数据库设计时如何优化"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!