个人经验总结:MySQL数据库优化技巧集锦
sum(value) from trans where customer_id=some_id;
mysql> update customer set total_value=sum_from_previous_statement where customer_id=some_id; mysql> UNLOCK TABLES;
mysql> BEGIN WORK; mysql> select sum(value) from trans where customer_id=some_id; mysql> update customer set total_value=sum_from_previous_statement where customer_id=some_id; mysql> COMMIT;
UPDATE customer SET value=value+new_value WHERE customer_id=some_id;
IF found-row LOCK TABLES t1 DELETE FROM t1 WHERE key1=# INSERT INTO t1 VALUES (...) UNLOCK TABLES t1; ENDIF
REPLACE INTO t1 VALUES (...)
三十三、一般技巧
当使用多部分键码时,第一部分应该时最常用的部分。 有疑问时,首先使用更多重复的列以获得更好地键码压缩。 如果在同一台机器上运行MySQL客户和服务器,那么在连接MySQL时则使用套接字而不是TCP/IP(这可以提高性能7.5%)。可在连接MySQL服务器时不指定主机名或主机名为localhost来做到。 如果可能,使用--skip-locking(在某些OS上为默认),这将关闭外部锁定并将提高性能。 使用应用层哈希值而非长键码: SELECT * FROM table_name WHERE hash=md5(concat(col1,col2)) AND col_1=''constant'' AND col_2=''constant''
删除所有行比删除一大部分行要快。 如果SQL不够快,研究一下访问数据的较底层接口。
HEAP:内存中的表 Berkeley DB:支持事务的表。 众多提高的限制 动态字符集 更多的STATUS变量 CHECK和REPAIR表 更快的GROUP BY和DISTINCT LEFT JOIN ... IF NULL的优化 CREATE TABLE ... SELECT CREATE TEMPORARY table_name (...) 临时HEAP表到MyISAM表的自动转换 复制 mysqlhotcopy脚本
三十五、正在积极开发的重要功能
失败安全的复制 正文搜索 多个表的删除(之后完成多个表的更新 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |