`
fantasy
  • 浏览: 506455 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL总结

阅读更多
1:性能调优
mysql>explain select * from table;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
table          #显示该语句涉及的表
type           #反映语句的质量,优-->差:const > eq_reg > ref > range > indexhe > ALL
possible_keys  #存在表中的所有索引
key            #使用到的索引
key_len        #索引长度,越短越好
ref            #显示索引的那一列被用到
rows           #语句返回的数据行数
extra          #语句查询情况的详细信息

这个语句很好,能帮你写出最优的SQL语句。

2:查看表的明细
DESCRIBE table//包括字段,字段类型,索引,默认值。
MySql有一点让人挺郁闷的单表字段的总长度不能超过65535,除非使用text和blob。

3:存储过程
给测试写的一个存储过程。给某个表插入N条测试数据。
DELIMITER $$

DROP PROCEDURE IF EXISTS `ump`.`addConfigItem`$$

CREATE PROCEDURE `ump`.`addConfigItem`
(
  IN itemNums int
)

BEGIN

DECLARE i INT DEFAULT 0;

while i < itemNums

do

set i = i + 1;

delete from `CMT_CI` where `cmpk_ci_uuid`=i;
INSERT INTO `CMT_CI`(`cmpk_ci_uuid`,`cmfk_class_uuid`,`tree_code`,`name`,`memo`) VALUES(i,'1','1-','数据库','测试数据'); 

end while;
 
END$$

DELIMITER ;

call ump.addConfigItem(500);

  • 写存储过程有几个需要注意的:
  • 字段需要用`符号包起来。
  • 注意空格和换行。
  • 开头和结尾需要DELIMITER $$和END$$ DELIMITER ;



学习资料
http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html#getting-information
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics