WEB开发网
开发学院数据库MySQL MySQL查询优化系列讲座之数据类型与效率 阅读

MySQL查询优化系列讲座之数据类型与效率

 2006-04-06 10:43:37 来源:WEB开发网   
核心提示: 对于复制(replication)从属服务器,你可能希望使用--delay-key-write=ALL来延迟所有的MyISAM数据表索引的刷新,MySQL查询优化系列讲座之数据类型与效率(8),不管在主服务器上最初是如何建立它们的,· 使用压缩的客户端/服务器协议来减少网络上

对于复制(replication)从属服务器,你可能希望使用--delay-key-write=ALL来延迟所有的MyISAM数据表索引的刷新,不管在主服务器上最初是如何建立它们的。

· 使用压缩的客户端/服务器协议来减少网络上数据传输的数量。对于大多数MySQL客户端来说,我们都可以使用--compress命令行选项来指定它。通常,这个选项只是在较慢的网络上使用,这是因为压缩操作会花费大量的处理器时间。

· 让MySQL替你插入默认值。也就是说,无论如何都不要给INSERT语句中那些可以赋予默认值的列指定值。平均起来,你的语句更短,减少了通过网络发送到服务器的字符数量。此外,由于语句包含的值较少,服务器执行的分析和值转换操作也较少。

· 对于MyISAM数据表,如果你必须把大量的数据载入一个新表,最好建立不带索引的表,载入数据,然后建立索引,这样的工作次序的速度要快一些。一次性地建立索引比每行都更新索引的速度要快一些。对于已经带有索引的表,如果预先删除或禁止索引,后来再重新建立或者激活索引,那么数据载入的速度也要快一些。这些策略不能应用于InnoDB或BDB表,它们没有对分离的索引建立过程进行优化。

如果你考虑使用删除或禁止索引的策略,把数据载入MyISAM数据表,那么在评估获得的优势的时候,就需要考虑整个环境。如果你把少量的数据载入大型的数据表中,那么在没有任何特殊准备工作的情况下,重新建立索引花费的时间可能比载入数据的时间还要长。

要删除并且重新建立索引,需要使用DROP INDEX和CREATE INDEX,或者使用与索引相关的ALTER TABLE。禁止和激活索引有两种办法:

· 你可用使用ALTER TABLE的DISABLE KEYS和ENABLE KEYS形式:

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

Tags:MySQL 查询 优化

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