随笔分类 -  mysql

mysql 开发进阶篇系列 1 SQL优化(show status命令)
摘要:一.概述 随着上线后,数据越来越多,很多sql语句开始显露出性能问题,本章介绍在mysql中优化sql语句的方法。 1. 通过show status 命令了解各种sql的执行频率 通过show [session | global] 命令可以提供服务器状态信息,也可以在操作系统上使用mysqladmi 阅读全文

posted @ 2018-07-17 15:09 花阴偷移 阅读(703) 评论(0) 推荐(0) 编辑

mysql 开发基础系列22 SQL Model(带迁移事项)
摘要:一.概述 与其它数据库不同,mysql 可以运行不同的sql model 下, sql model 定义了mysql应用支持的sql语法,数据校验等,这样更容易在不同的环境中使用mysql。 sql model 常用来解决下面几类问题: (1) 通过设置sql mode, 可以完成不同严格程度的数据 阅读全文

posted @ 2018-07-16 18:06 花阴偷移 阅读(1025) 评论(0) 推荐(0) 编辑

mysql 开发基础系列21 事务控制和锁定语句(下)
摘要:1. 隐含的执行unlock tables 如果在锁表期间,用start transaction命令来开始一个新事务,会造成一个隐含的unlock tables 被执行,如下所示: 会话1 会话2 SELECT * FROM country WHERE country='德国'; 记录为空 SELE 阅读全文

posted @ 2018-07-16 11:01 花阴偷移 阅读(310) 评论(0) 推荐(0) 编辑

mysql 开发基础系列20 事务控制和锁定语句(上)
摘要:一.概述 在mysql 里不同存储引擎有不同的锁,默认情况下,表锁和行锁都是自动获得的,不需要额外的命令, 有的情况下,用户需要明确地进行锁表或者进行事务的控制,以便确保整个事务的完整性。这样就需要使用事务控制和锁定语句来完成。 特点 myisam innodb memory merge ndb 事 阅读全文

posted @ 2018-07-12 16:22 花阴偷移 阅读(346) 评论(0) 推荐(1) 编辑

mysql 开发基础系列19 触发器
摘要:触发器是与表有关的数据库对象,触发器只能是针对创建的永久表,而不能是临时表。 1.1 创建触发器 -- 语法: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt t 阅读全文

posted @ 2018-07-12 09:50 花阴偷移 阅读(262) 评论(0) 推荐(1) 编辑

mysql 开发基础系列18 存储过程和函数(下)
摘要:1. 光标的使用(游标) 在存储过程和函数中可以使用光标对结果集进行循环的处理,光标使用包括光标的声明,open ,fetch,close。 下面在存储过程中使用一个光标, 这个举例中光标里的逻辑不重要, 重点在于如何使用光标: SELECT city_id FROM test.city DELIM 阅读全文

posted @ 2018-07-11 13:59 花阴偷移 阅读(322) 评论(0) 推荐(0) 编辑

mysql 开发基础系列17 存储过程和函数(上)
摘要:一. 概述 存储过程和函数是事先经过编译并存储在数据库中的一段sql语句集合,可以简化应用开发人员的很多工作,减少数据在数据库与应用服务器之间的传输,提高数据处理效率是有好处的。存储过程和函数的区别在于函数必须有返回值,存储过程的参数可以使用in,out ,inout类型,而函数参数只能是in类型。 阅读全文

posted @ 2018-07-10 16:40 花阴偷移 阅读(348) 评论(0) 推荐(0) 编辑

mysql 开发基础系列16 视图
摘要:一. 什么是视图 视图是一种虚拟存在的表,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。优势有: 简单: 使用视图的用户完全不需要关心后面对应的表的结构,关联条件,筛选条件。 安全:使用视图的用户只能访问他们被允许查询的结果集。 数据独立: 源表增加列对视图没有影响,源表修改 阅读全文

posted @ 2018-07-09 17:16 花阴偷移 阅读(257) 评论(0) 推荐(0) 编辑

mysql 开发基础系列15 索引的设计和使用
摘要:一.概述 所有mysql 列类型都可以被索引,是提高select查询性能的最佳方法。 根据存储引擎可以定义每个表的最大索引数和最大索引长度,每种引擎对每个表至少支持16个索引,总索引长度至少为256字节。 myisam和innodb引擎的表默认是btree索引,支持前缀索引,前缀索引长度跟存储引擎相 阅读全文

posted @ 2018-07-09 14:25 花阴偷移 阅读(466) 评论(0) 推荐(0) 编辑

mysql 开发基础系列14 字符集
摘要:字符集是一套文字符号及其编码,比较规则的集合。第一个字符集是ascll(american standard code for information interchange)。 1. 选择合适的字符集 对于数据库来说,字符集很重要,因为数据库存储的数据大部分是各种文字,字符集对数据库的存储,处理性能 阅读全文

posted @ 2018-07-06 15:52 花阴偷移 阅读(470) 评论(0) 推荐(0) 编辑

mysql 开发基础系列13 选择合适的数据类型(下)
摘要:一. BloB和Text 1. 合成索引 合成索引可以提高大文本字段BLOB和Text的查询性能, 合成索引是在表中增加一个字段存放散列值,这种技术只能用于精确匹配的查询,可以使用md5()或sha1,crc23() 来生成散列值, 数值型散列值可以提高存储效率 。下面演示下 -- hash_val 阅读全文

posted @ 2018-07-06 11:07 花阴偷移 阅读(271) 评论(0) 推荐(0) 编辑

mysql 开发基础系列12 选择合适的数据类型(上)
摘要:一. char 与varchar比较 在上图的最后一行的值只适用在"非严格模式",关于严格模式后面讲到。在“开发基础系列4“ 中讲到CHAR 列删除了尾部的空格。由于char是固定长度,所以字的处理速度比varchar快,但也浪费存储空间,随着mysql 的不断升级,varchar数据类型的性能也在 阅读全文

posted @ 2018-07-05 16:50 花阴偷移 阅读(334) 评论(0) 推荐(0) 编辑

mysql 开发基础系列11 存储引擎memory和merge介绍
摘要:一. memory存储引擎 memoery存储引擎是在内存中来创建表,每个memory表只实际对应一个磁盘文件格式是.frm. 该引擎的表访问非常得快,因为数据是放在内存中,且默认是hash索引,但服务关闭,表中的数据就会丢失掉。 -- 下面创建一个memory表,并从city表获得记录 CREAT 阅读全文

posted @ 2018-07-04 17:31 花阴偷移 阅读(474) 评论(0) 推荐(0) 编辑

mysql 开发基础系列10 存储引擎 InnoDB 介绍
摘要:一. 概述: InnoDB存储引擎提供了具有提交,回滚,和崩溃恢复能力的事务安全,对比MYISAM 的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。它的特点有如下: 1. 自动增长列特点 (AUTO_INCREMENT) InnoDB表的自动增长列可以手工插入,但 阅读全文

posted @ 2018-07-04 10:07 花阴偷移 阅读(475) 评论(0) 推荐(1) 编辑

mysql 开发基础系列9 存储引擎 MyISAM 介绍
摘要:MyISAM是mysql 默认存储引擎,它不支持事务,外键。但访问速度快,对事务完整性没有要求或者以select,insert 为主的应用基本上都可以使用这个引擎。每个MyISAM在磁盘上存储成3个文件,文件名都和表名相同,扩展分别是:.frm(存储表定义).MYD(MYdata 存储数据).MYI 阅读全文

posted @ 2018-07-02 16:31 花阴偷移 阅读(504) 评论(0) 推荐(2) 编辑

mysql 开发基础系列8 表的存储引擎
摘要:一. 表的存储引擎 1. 概述 插件式存储引擎是mysql数据库最重要的特性之一, 用户可以根据应用的需要选择如何存储和索引数据,是否使用事务等。在mysql 5.0里支持的引擎包括: MyISAM,InnoDB,BDB,Memory,Merge,Example,NDB Cluster, Archi 阅读全文

posted @ 2018-07-02 13:54 花阴偷移 阅读(365) 评论(0) 推荐(0) 编辑

mysql 开发基础系列7 流程函数与其它函数
摘要:一.流程函数 -- 创建表来介绍 CREATE TABLE salary (userid INT,salary DECIMAL(9,2)); INSERT INTO salary VALUES(1,1000),(2,2000), (3,3000),(4,4000),(5,5000), (1,NULL 阅读全文

posted @ 2018-06-30 15:34 花阴偷移 阅读(325) 评论(0) 推荐(0) 编辑

mysql 开发基础系列6 数值与日期函数
摘要:一. 数值函数 1. abs(x) 返回x的绝对值 SELECT ABS(-0.8),ABS(0.8); 2.ceil(x) 返回大于x的最大整数 SELECT CEIL(-0.8),CEIL(0.8); 3.floor(x) 返回小于x的最大整数 SELECT FLOOR(-0.8),FLOOR( 阅读全文

posted @ 2018-06-30 12:36 花阴偷移 阅读(425) 评论(0) 推荐(0) 编辑

mysql 开发基础系列5 字符串函数
摘要:字符串函数 1. concat (s1,s2,...sn) 连接里面的参数成一个字符串(注意上面写错了函数名称) SELECT CONCAT('ddd','CCC'); 2. insert(str,x,y,instr) 将字符串str 从x位置开始,y个长度替换成instr SELECT INSER 阅读全文

posted @ 2018-06-29 16:24 花阴偷移 阅读(334) 评论(0) 推荐(1) 编辑

mysql 开发基础系列5 运算符
摘要:1. 算术运算符 2.比较运算符 注意NULL值不能用= 运算符 SELECT * FROM t WHERE c =NULL; -- 需要改成 SELECT * FROM t WHERE c IS NULL; -- 或改成 SELECT * FROM t WHERE c <=> NULL; --be 阅读全文

posted @ 2018-06-29 14:16 花阴偷移 阅读(333) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示