通常地,应该保存所有的冗余数据(在数据库原理中叫做第三范式)。然而,为了能取得更高的效率复制一些信息或者创建摘要表也是划算的。
存储过程或者 udfs(用户定义函数) 的方式在执行一些任务时可能性能更高。尽管如此,当数据库不支持这些特性时,还是有其他的替代方法可以达到目的,即使它们有点慢。
可以从查询缓存或应答中取得结果,然后将很多次的插入及更新操作放在一起做。如果数据库支持表锁(如mysql和oracle),那么这就可以确保索引缓存在所有的更新操作之后只需要刷新一次。
当不需要直到数据什么时候写入表中时,可以用 insert delayed。这就会提高速度,因为多条记录同时在一起做一次磁盘写入操作。
当想让 select 语句的优先级比插入操作还高时,用 insert low_priority。
用 select high_priority 来使检索记录跳过队列,也就是说即使有其他客户端正要写入数据,也会先让 select 执行完。
在一条 insert 语句中采用多重记录插入格式(很多数据库都支持)。
用 load data infile 来导入大量数据,这比 insert 快。
用 auto_increment 字段来生成唯一值。
定期执行 optimize table 防止使用动态记录格式的 myisam 表产生碎片。详情请看15.1.3 myisam table storage formats。
采用 heap 表,它可能会提高速度。详情请看15.1.3 myisam table storage formats。
正常的web服务器配置中,图片文件最好以文件方式存储,只在数据库中保存文件的索引信息。这么做的原因是,通常情况下web服务器对于文件的缓存总是做的比数据库来得好,因此使用文件存储会让系统更容易变得更快。
http://www.bkjia.com/phpjc/630974.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/630974.htmltecharticle通常地,应该保存所有的冗余数据(在数据库原理中叫做第三范式)。然而,为了能取得更高的效率复制一些信息或者创建摘要表也是划...