当前位置:网站主页>网站技术资料>mysql>文章内容

mysql常用命令七(MySQL的优化方法)


where customer_id=some_id;
mysql> UNLOCK TABLES;

BDB表如何进行事务:
mysql> BEGIN WORK;
mysql> select sum() from trans where customer_id=some_id;
mysql> update customer set total_=sum_from_previous_statement
where customer_id=some_id;
mysql> COMMIT;

注意你可以通过下列语句回避事务:
UPDATE customer SET =+new_ WHERE customer_id=some_id;

三十二、使用REPLACE的例子
REPLACE的功能极像INSERT, 除了如果一条老记录在一个唯一索引上具有与新纪录相同
的值,那么老记录在新纪录插入前则被删除。
不使用
SELECT 1 FROM t1 WHERE key=#
IF found-row
LOCK TABLES t1
DELETE FROM t1 WHERE key1=#
INSERT INTO t1 S (...)
UNLOCK TABLES t1;
ENDIF

而用
REPLACE INTO t1 S (...)

三十三、一般技巧
使用短主键。联结表时使用数字而非字符串。
当使用多部分键码时,第一部分应该时最常用的部分。
有疑问时,首先使用更多重复的列以获得更好地键码压缩。
如果在同一台机器上运行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

在文件中保存需要以文件形式访问的BLOB,在数据库中只保存文件名。
删除所有行比删除一大部分行要快。
如果SQL不够快,研究一下访问数据的较底层接口。

三十四、使用MySQL 3.23的好处
MyISAM:可移植的大表格式
HEAP:内存中的表
Berkeley DB:支持事务的表。
众多提高的限制
动态字符集
更多的STATUS变量
CHECK和REPAIR表
更快的GROUP BY和DISTINCT
LEFT JOIN ... IF NULL的优化
CREATE TABLE ... SELECT
CREATE TEMPORARY table_name (...)
临时HEAP表到MyISAM表的自动转换
复制
mysqlhotcopy脚本

  • 快速服务服务:网站策划 | 网站建设 | 北京网站建设 | 网站推广 | 网罗SEO
  • 联系网罗: 咨询电话:010-89630319 Mail:admin#wonlu.com Msn:刘先生 QQ:26402294
  •   2006-2008 Wonlu.com 北京网罗无限-京ICP备06036090号 网罗SEO