1.建议索引,可以提高检索速度。
但同样,如果建的太多会增加系统开销
2.键,主要是为了实现完整性,表之间的约束等。另外可以通过表间参照关系来提高数据库时间,空间的效率.
如产品表:No(主键),Name 销售表:No(外键),Price
>>产品表 No可保证相同编号的产品只出现一种。
>>如果不建参照,建成一个表也能实现:No,Name,Price....如果产品很多,而销售的数量很少,则表中许多price就是空,则会浪费很多间
3.触发器,触发器的作用是非常大的。它可以完成许多功能,保证数据库完整性,正确性等方面有许多作用。
比如在表1中插入一条记录,也想在表2中也插入一条记录。那么可以对表1建触发器:在插入时触发另一条向表2插入数据的sql语句.
但实际应用中有时这些也并完全是优点:
1. 如表间参照关系,许多人设计数据库都不设。因为有些情况(如删除记录,向上面讲“键”的例子,若要删除'产品表'的一条记录,而‘销售’表中又有记录,则不可以删除)----当然可以实现删除,但若想删除‘产品表’而又想保留‘销售表‘中数据,则要通过其它方法来实现。
若是不设键,则可以自由删除。当然其完整性要在程序中来保证。
2. 唯一索引(主键),在表特别大而插入特别频繁时会降低效率。因为每插入一条都会扫描一遍数据库。此时如果能保证记录是正确的 ,可以先删除唯一索引,插入后再建索引。这在时间上也 是划算的有时。比如我曾count过一个7000万的表,用了40多分钟。这时先删,再插,再建就很划算了。
当然,实际中还会遇到许多情况。就看你的重点在什么地方了。
啊,打了这么多,累死了,多多交流!!!
希望对你有所帮助!
温馨提示:答案为网友推荐,仅供参考