mysql存储过程中怎么睡几秒_MySql的逻辑架构
Mysql在互联网企业中应用非常广泛,互联网企业的特点访问量非常大,怎么样优化mysql就成了摆在我们面前的一道难题。
我们从mysql的逻辑架构说起:
最上面一层是客户端的连接服务,主要完成客户端的连接处理,授权认证。在该层有一个线程池,每一个连接从线程池中获取线程,省去了创建和销毁线程的开销。
中间这一层可以完成查询解析,分析,优化,缓存。存储过程,触发器,视图也是在这一层。
最下面一层是存储引擎,负责mysql中数据的存储和提取。
和其它数据库有所不同,mysql的存储引擎是可插拔的,可以根据不同的场合使用不同的存储引擎。
存储引擎:
存储引擎就是存储数据,更新查询数据,建立索引等等的技术实现方式,mysql5.0支持的存储引擎包括: InnoDB 、MyISAM 、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中使用最多的是InnoDB 和MyISAM,mysql5.5之后InnoDB是默认的存储引擎我们重点讨论这两个存储引擎
查看mysql默认存储引擎的命令:
show variables like '%storage_engine%'
InnoDB存储引擎和MyISAM的对比图:
InnoDB存储引擎和MyISAM存储引擎的最大区别有以下三点:
1. InnoDB支持事物,MyISAM不支持
2. InnoDB支持外键,MyISAM不支持
3. 批量插入的速度MyISAM要高于InnoDB
基于以上特点来看看在实际使用中应该如何选择存储引擎:
InnoDB存储引擎:因为InnoDB存储引擎支持事物,所以对于要求事物完整性的场合需要选择InnoDB,比如数据操作除了插入和查询以外还包含有很多更新删除操作,像财务系统等对数据准确性要求较高的系统。
MyISAM存储引擎:如果系统是以读操作和插入操作为主,只有很少的更新删除操作,并且对事物的之处没有要求那么可以选择这个存储引擎。
mysql存储过程中怎么睡几秒_MySql的逻辑架构相关推荐
- mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别
在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...
- mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?
我们可以使用游标来处理存储过程中的结果集.基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行. 为了演示在MySQL存储过程中CURSOR的用法,我们基于以下名为" student_ ...
- mysql存储过程中as_Mysql存储过程中的delimiter
这个命令与存储过程没什么关系吧. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束, ...
- MySQL存储过程中的3种循环
MySQL存储过程中的3种循环 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易 ...
- mysql 存储过程中limit
mysql 存储过程中limit 1.mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum; 2.my ...
- mysql存储过程是不是不能穿sql语句_mysql存储过程能不能直接执行拼接的sql语句...
展开全部 当然可以,就是在mysql存储过程中使用动态sql,就可以拼接sql,然62616964757a686964616fe58685e5aeb931333361323562后执行了. 给你复制一 ...
- linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法
中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...
- mysql 存储过程中 if else的使用 和赋值方式
mysql 存储过程中 if else的使用 和赋值方式 在mysql 中顶一个变量的语法 DECLARE variable_name datatype(size) DEFAULT default_v ...
- mysql存储过程给多个变量赋值_MySQL存储过程如何进行变量的定义和赋值
昨天我们讲了mysql存储过程创建修改与删除,下面我们这篇教程是讲关于mysql存储过程中变量的定义赋值操作哦. 一.变量的定义 mysql中变量定义用declare来定义一局部变量,该变量的使用范围 ...
最新文章
- 使用idea创建springboot项目并打成war包发布到weblogic上...
- 华为云总裁郑叶来:易获取、用得起、方便用的算力是人工智能发展的关键
- Flutter Android/iOS包大小分析
- Windows Server 2012 R2 VDI系列(一)—环境简介
- BZOJ4557:[JLOI2016/SHOI2016]侦察守卫——题解
- 在storm中使用定时保存
- 通过Ftp put命令上传导致文件损坏的解决办法
- 【计算机本科补全计划】王道单科--栈的实现以及一些性质
- 如何在Java的特定范围内生成随机整数? [英]How do I generate random integers within a specific range in Java?
- Linux 下java jdk安装
- Delphi ArcEngine 创建比例尺
- vmware复制fedora16出现网络启动错误
- 线性同余算法 (LCG)
- x210ii开发板使用fastboot下载出现没有权限的问题
- 【舆情监控】社会化大数据应用平台TOOM舆情监测系统
- java 中文分词转拼音_如何实现拼音与汉字的互相转换
- 为什么PPIO要设计支付代理节点?
- 一加5t ,安卓p系统卡在更新页面,安卓p降级教程(一加5t测试通过)
- 用html5做一个介绍自己家乡的页面_(近万字)一篇文章带你了解HTML5和CSS3开发基础与应用-适合前端面试必备...
- vue下载pdf为空问题解决