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

MySQL数据库优化(四)

 2008-06-12 11:07:59 来源:WEB开发网   
核心提示: 6 加速 DELETE删除单个记录的时间和它的索引个数几乎成正比,想更快地删除记录,MySQL数据库优化(四)(8),可以增加索引键的缓存,详情请看"7.5.2 Tuning Server Parameters",如果这个字段比较短而且基本上都是唯一值的话,那么就可能会

6 加速 DELETE

删除单个记录的时间和它的索引个数几乎成正比。想更快地删除记录,可以增加索引键的缓存。详情请看"7.5.2 Tuning Server Parameters"。

如果想要删除数据表的所有记录,请使用 TRUNCATE TABLE tbl_name 而不是 DELETE FROM tbl_name。

7 其他优化点子

本章节列出了一些改善查询处理速度的其他点子:

使用永久连接到数据库,避免连接的开销。如果需要初始化很多连接,而又不能用永久连接,那么可以修改变量 thread_cache_size 的值,详情请看"7.5.2 Tuning Server Parameters"。

总是检查查询是否利用了表中已有的索引。在MySQL中,可以用 EXPLAIN 语句来分析。详情请看"7.2.1 EXPLAIN Syntax (Get Information About a SELECT)"。

尽量不要在经常需要更新的 MyISAM 表上用太过复杂的 SELECT 语句,这是为了避免在读和写之间争夺锁。

在 MyISAM 表中,如果没有正在删除记录,则可以在其他查询正在读取数据的同时插入记录。如果这种情况十分重要,那么就要尽量在表没有删除记录时才使用表。另一个可能的办法就是在删除一大堆记录之后执行 OPTIMIZE TABLE 语句。

如果总是需要按照 expr1, expr2, ... 的顺序取得记录,那么请使用 ALTER TABLE ... ORDER BY expr1, expr2, ... 修改表。通过这种方法扩充修改表之后,就可能获得更高的性能表现。

在一些情况下,让一个字段类型是 ``hashed`` ,它基于其他字段信息。如果这个字段比较短而且基本上都是唯一值的话,那么就可能会比在几个字段上使用一个大索引来得更快,很简单的就能使用这样的额外字段,如下:

  SELECT*FROMtbl_nameWHEREhash_col=MD5(CONCAT(col1,col2))
  ANDcol1='constant'ANDcol2='constant';

上一页  3 4 5 6 7 8 9 10  下一页

Tags:MySQL 数据库 优化

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