欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

MySQL手册版本 5.0.20-MySQL优化(四) (1)(5)

程序员文章站 2022-05-23 19:00:48
...
通常地,应该保存所有的冗余数据(在数据库原理中叫做"第三范式")。然而,为了能取得更高的效率复制一些信息或者创建摘要表也是划算的。


存储过程或者 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服务器对于文件的缓存总是做的比数据库来得好,因此使用文件存储会让系统更容易变得更快。