WEB开发网
开发学院数据库MySQL MySQL数据库优化(四) 阅读

MySQL数据库优化(四)

 2008-06-12 11:07:59 来源:WEB开发网   
核心提示: 应该认识到一个优点就是字段有默认值,当要插入的值和默认值不一致时才需要明确指定,MySQL数据库优化(四)(10),这就省去了MySQL需要来提高插入速度这步了, 在一些情况下, 采用 HEAP 表,它可能会提高速度,将数据组装存储在 BLOB 类型字段中更方便,那么在应用程序中就需要增加

应该认识到一个优点就是字段有默认值。当要插入的值和默认值不一致时才需要明确指定。这就省去了MySQL需要来提高插入速度这步了。

在一些情况下,将数据组装存储在 BLOB 类型字段中更方便。那么在应用程序中就需要增加额外的命令来组装和拆开 BLOB 字段中的值,不过这么做在一些时候就可以节省很多存储开销。这在数据无需遵从 记录-和-字段 格式的表结构是很实用。

通常地,应该保存所有的冗余数据(在数据库原理中叫做"第三范式")。然而,为了能取得更高的效率复制一些信息或者创建摘要表也是划算的。

存储过程或者 UDFs(用户定义函数) 的方式在执行一些任务时可能性能更高。尽管如此,当数据库不支持这些特性时,还是有其他的替代方法可以达到目的,即使它们有点慢。

可以从查询缓存或应答中取得结果,然后将很多次的插入及更新操作放在一起做。如果数据库支持表锁(如MySQL和ORACLE),那么这就可以确保索引缓存在所有的更新操作之后只需要刷新一次。

当不需要直到数据什么时候写入表中时,可以用 INSERT DELAYED。这就会提高速度,因为多条记录同时在一起做一次磁盘写入操作。

当想让 SELECT 语句的优先级比插入操作还高时,用 INSERT LOW_PRIORITY。

用 SELECT HIGH_PRIORITY 来使检索记录跳过队列,也就是说即使有其他客户端正要写入数据,也会先让 SELECT 执行完。

在一条 INSERT 语句中采用多重记录插入格式(很多数据库都支持)。

用 LOAD DATA INFILE 来导入大量数据,这比 INSERT 快。

用 AUTO_INCREMENT 字段来生成唯一值。

定期执行 OPTIMIZE TABLE 防止使用动态记录格式的 MyISAM 表产生碎片。

采用 HEAP 表,它可能会提高速度。详情请看"15.1.3 MyISAM Table Storage Formats"。

上一页  5 6 7 8 9 10 

Tags:MySQL 数据库 优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接