2008-05-28

MySQL存储程序开发最佳实践

关键字: mysql 存储程序 最佳实践
MySQL存储程序开发最佳实践 1,开发流程 1,写代码之前设立标准和指南 2,遇到一个问题30分钟不能解决之后寻求帮助 3,相互review代码 4,利用独立的测试人员进行测试 5,使用代码版本控制 2,编码风格和惯例 1,使用一致的、可读性强的代码风格 2,使用有逻辑意义的、一致的命名规范 3,使用block和loop labels作为自我诠释文档 4,复杂的表达式使用括号 5,使用纵向的代码排列来强调纵向关系 6,注释代码简明扼要并且只写“增值”信息 3,变量 1,使用一致的而且有意义的变量命名风格 2,避免在内部block里覆盖变量声明 ...
2008-05-28

MySQL join的文章

关键字: mysql join
MySQL的联结(Join)语法
2008-05-28

MySQL索引系列文章

关键字: mysql index
MySQL索引使用 MySQL索引 MySQL 5.1参考手册 :: 7. 优化 MySQL索引分析和优化
2008-05-28

MySQL存储程序权限控制

关键字: mysql 存储程序 权限
MySQL存储程序权限控制 MySQL5.0引入了一些管理存储程序的权限: CREATE ROUTINE: 允许用户创建新的存储程序 ALTER ROUTINE: 允许用户修改security mode/SQL mode/comment EXECUTE: 允许用户只需存储程序 给用户赋予权限: GRANT CREATE ROUTINE ON mydatabase.* TO sp_creator; GRANT ALTER ROUTINE ON mydatabase.* TO sp_creator; GRANT EXECUTE ON mydatabase.* TO sp_c ...
2008-05-27

MySQL的Stored Function和Trigger

关键字: mysql function trigger
MySQL的Stored Function和Trigger Stored Function 存储Function可以作为表达式在内建方法可以调用的地方使用以及SELECT、UPDATE、DELETE、INSERT语句中使用 CREATE FUNCTION function_name(parameter[,...]) RETURNS datatype [LANGUAGE SQL] [ [NOT] DETERMINISTIC] [ {CONTAINS SQL | NO SQL | MODIFIES SQL DATA | READS SQL DATA} ...
2008-05-22

MySQL内建Function

关键字: mysql buit in funcitons
MySQL内建Function 在MySQL存储程序(存储过程、存储Function、触发器)里可以使用几乎任何MySQL内建Function 常用的Function为: 1,字符串function 2,数字function 3,时间和日期function 4,其他function 1,字符串function 字符串function处理VARCHAR/CHAR/TEXT等字符串数据类型 1)ASCII string = ASCII(string) 返回字符串中首个字符的ASCII码 2)CHAR string = CHAR(acsii_code[, ...]) ...
2008-05-21

MySQL存储过程之事务管理

关键字: mysql transaction
MySQL存储过程之事务管理 ACID:Atomic、Consistent、Isolated、Durable 存储程序提供了一个绝佳的机制来定义、封装和管理事务。 1,MySQL的事务支持 MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关: MyISAM:不支持事务,用于只读程序提高性能 InnoDB:支持ACID事务、行级锁、并发 Berkeley DB:支持事务 隔离级别: 隔离级别决定了一个session中的事务可能对另一个session的影响、并发session对数据库的操作、一个session中所见数据的一致性 ANSI标准定义了4个隔离级别, ...
2008-05-20

MySQL存储程序之创建和维护存储程序

关键字: mysql 存储程序
创建和维护存储程序 1,创建和维护存储程序语法 1)CREATE PROCEDURE CREATE PROCEDURE procedure_name ([parameter[,...]) [LANGUAGE SQL] [ [NOT] DETERMINISTIC] [ {CONTAINS SQL|MODIFIES SQL DATA|READS SQL DATA|NO SQL} ] [SQL SECURITY {DEFINER|INVOKER}] [COMMENT comment_string] procedure_statements /* par ...
2008-05-19

MySQL存储程序之Error Handling

关键字: mysql error handling
1,简介 MySQL支持HANDLER来处理错误: Duplicate entry Handler CREATE PROCEDURE sp_add_location (in_location VARCHAR(30), in_address1 VARCHAR(30), in_address2 VARCHAR(30), zipcode VARCHAR(10), OUT out_status VARCHAR(30)) BEGIN DECLARE CONTINUE HANDLER ...
2008-05-16

在MySQL存储程序里使用SQL

关键字: mysql sp sql
1,使用非SELECT语句 UPDATE/INSERT/SET、DDL、DML等非查询语句可以随意在存储程序里执行 CREATE PROCEDURE simple_sqls() BEGIN DECLARE i INT DEFAULT 1; /* Example of a utility statement */ DROP TABLE IF EXISTS test_table CREATE TABLE test_table (id INT PRIMARY KEY, some_data VARCHAR(30)) ENGINE=in ...
1,代码块 代码顺序 1,变量和条件声明 2,Cursor声明 3,Handler声明 4,程序代码 可以给代码块加lebel,这样END匹配比较直观,还可以用LEAVE语句来终结代码块: [label:] BEGIN varaiable and condition declarations cursor declarations handler declarations program code END [label]; 代码块可以嵌套: CREATE PROCEDURE nested_blocks() BEGIN ...
2008-05-13

MySQL存储过程语法基础

关键字: mysql
存储过程语法基础 1,变量 DECLARE声明,SET赋值 变量类型: INT, INTEGER BIGINT FLOAT DOUBLE DECIMAL(precision, scale), NUMERIC(precision, scale) DATE DATETIME CHAR(length) VARCHAR(length) BLOB, TEXT LONGBLOB, LONGTEXT 可以在DECLARE变量时用DEFAULT设置默认值,不设则为NULL 2,参数 参数分IN、OUT和INOUT类型 3,用户变量 以@开头的为用户变量,作用域为sessi ...
2008-05-04

MySQL存储程序入门指南

关键字: mysql
1,前提 需要MySQL 5 2,Hello World MySQL存储过程之Hello World DELIMITER $$ DROP PROCEDURE IF EXISTS HelloWorld$$ CREATE PROCEDURE HelloWorld() BEGIN SELECT "Hello World!"; END$$ DELIMITER ; 3,变量 使用DECLARE来声明,DEFAULT赋默认值,SET赋值 DECLARE counter INT DEFAULT 0; SET counter = counter+1; 4,参 ...
2008-04-30

MySQL存储过程之Hello World

关键字: mysql
Hello World之MySQL存储过程版: DELIMITER $$ DROP PROCEDURE IF EXISTS HelloWorld$$ CREATE PROCEDURE HelloWorld() BEGIN SELECT "Hello World!"; END$$ DELIMITER ; OK,调用一下: CALL HelloWorld(); 结果: +--------------------+ | Hello World! | +--------------------+ | Hello World! ...
2008-04-28

MySQL存储过程调试?

关键字: mysql
上次讲到工作中写一个存储过程,很麻烦,不知道该怎样调试,MySQL的存储过程又没有什么调试工具 老邓给的建议是创建一个临时表,存储过程中插一些debug信息到临时表里,然后通过查看临时表记录来人肉调试MySQL 今天一看才知道直接select _var就可以输出变量_var的值啊,瀑布汗-_-! 还可以插入多条select _var1、select _var2语句,直接在console里打印变量的值,我觉得爽了,你呢?
2008-03-07

MySQL的存储过程不支持递归

关键字: mysql 存储过程 递归
-- FUNCTION check_asset_group_mirror_relationship DROP FUNCTION IF EXISTS check_asset_group_mirror_relationship; DELIMITER | CREATE FUNCTION check_asset_group_mirror_relationship(group_id bigint(20)) RETURNS int BEGIN DECLARE group_type varchar(255); DECLARE mirror_flag int default ...
2007-12-24

MySQL的Full-Text Search

关键字: MySQL Full-Text Search
MySQL自带有全文搜索功能: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html 创建一个全文搜索表: CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT (title, body) ) ENGINE=MyISAM; 插入几条数据: INSERT INTO articles (title,body) VA ...
2007-10-18

Scaling MySQL

关键字: MySQL Scaling
一、两种scaling方式 1,Vertical partitioning,生成的segments称为partitions 2,Horizontal federation,生成的segments称为shards 二、Storage engines 1,MyISAM IBM开发的ISAM(Indexed Sequential Access Method)的扩展,是MySQL默认的storage engine MyISAM由三个文件组成,.frm文件存储table定义,.MYD文件存储row data,.MYI文件存储索引 MyISAM使用table-level locking,三种lock类型 ...
hideto
搜索本博客
我的相册
A6bdc31c-c66e-468e-961e-9cc721e82adc-thumb
screenshot
共 1 张
存档
最新评论