myisam innoDB是mysql经常使用的存储引擎

MyISAM不支持事务、也不支持外键。但其訪问速度快。对事务完整性没有要求。

InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。

可是比起MyISAM存储引擎,InnoDB写的处理效率差一些而且会占用很多其它的磁盘空间以保留数据和索引。

innodb的索引有两种。叫第一索引,以及第二索引。

有的也叫聚集索引与辅助索引。

当中聚集索引存放了表中的记录。查询的时候不须要回表扫描。同一时候索引项较大;辅助索引存放的位置信息,须要回表扫描,相对来说。I/0 次数会添加。

查询的时候最好可以从索引中取得数据。降低回表,相对来说离散的 I/0,

MYISAM 没有聚集索引。存放的记录的物理位置

OLTP (联机事务处理)故名思议主要强调事务,如(银行存款的改动,用户订单等)面向应用

OLAP (联机分析处理) 主要作为数据仓库。面向决策。分析等。

联接算法:

nested-loops join 主要思想是:从外表中拿出一个数据与内表的每一条数据比較,O(M*N) 。

当有索引时:内表仅仅须要比較索引的高度,近似于O(M*H)

Block nested--loops join 主要思想 是:改进 nested-loops join 外部表每次去一定的数据到缓冲区。比方10条,然后这10条记录在跟内部表的数据比較,降低内部表的扫描次数。

Hash join 仅仅能== 以及!=。不能部分比較(为何?,hash是对整个字符串hash) 主要思想是:将外部表的数据放到join buffer,然后hash,这一阶段

为build;probe阶段,从内表中取出数据hash,比較。

主要的測试:

create TABLE myorder

( id int not null auto_increment,

   userid int not null ,

  orderdate date,

comein int DEFAULT 0,

comeout int DEFAULT 0,

PRIMARY key (id)

);



INSERT into myorder VALUES("","11123940","2014-05-10","","50");

SELECT userid ,orderdate ,comein -comeout as rest 

from myorder

GROUP BY userid ,orderdate;

create index myorderindex on myorder(id,userid);

explain SELECT userid ,orderdate ,comein -comeout as rest 

from myorder

GROUP BY userid ,orderdate;

mysql手记的更多相关文章

  1. 【Lamp】 Linux 下安装PHP+Apache+Mysql 手记

    [0]写在最前 由于准备实习原因,今天又重温了Lamp的搭建过程,之前一直是看燕十八老师2012年的教程学习,因此今天也是拿了十八哥的lamp搭建笔记作参考.但这次按照笔记重新搭建,发现了很多问题,由 ...

  2. linux下安装mysql手记

    安装mysql 下载mysql-standard-4.1.8-pc-linux-i686.tar.gz文件到目录/usr/local/下 # groupadd mysql   //添加mysql用户组 ...

  3. linux操作mysql命令快速手记 — 让手指跟上思考的速度(二)

    这一篇是<mysql内建命令快速手记>的姐妹篇,废话不再赘述,直接上干货,跟老铁慢慢品 1.mysql -hlocalhost -uroot -proot,-h,-u,-p分别代表ip,u ...

  4. Mysql 数据库单机多实例部署手记

        最近的研发机器需要部署多个环境,包括数据库.为了管理方便考虑将mysql数据库进行隔离,即采用单机多实例部署的方式.找了会资料发现用的人也不是太多,一般的生产环境为了充分发挥机器性能都是单机单 ...

  5. MySQL命令使用手记

    1.登陆          >mysql -u root -p,root没密码按回车. 2.创建数据库  >create database XXX; 3.创建用户     >inse ...

  6. mysql数据库还原出错ERROR:Unknown command ‘\\’解决手记

    使用mysql命令行客户端,使用source导入备份文件,但导入中出错, ERROR: Unknown command ‘\\’. ERROR: Unknown command ‘\”. ERROR: ...

  7. 《PHP, MySQL, Javascript和CSS》读书随手记----MySQL篇

    一 基础 要求结尾分号 如果在命令输入期间想要终止其运行,不要Ctrl-C. 要输入\c,并按回车键. sql命令和关键字不区分大小写. 表名在windows中不区分大小写,但是在linux和os x ...

  8. MySQL随手记

    一.MySQL数据迁移(由远端主机迁移到本地) 1.导出数据库mysqldump -u root -p db > dump_db_date.sqlroot: 账户db: 需要导出的数据库名 2. ...

  9. [转]mysql日常工作手记

    1. 给navy加show权限: 1 2 update mysql.user set Show_db_priv='Y'  where user='navy'; flush privileges; 2. ...

随机推荐

  1. selenium——操作滚动条

    在自动化测试的过程中,难免会应用到翻页键,但是webdriver提供的方法都是操作当前页面可见的元素,对于未在当前范围展示的翻页键,该如何操作呢? 小编在这里介绍一种方法:使用JavaScript操作 ...

  2. laravel知识点备忘

    1.连表查询:select * from goods left join shop on goods.shopid=shop.shopid; DB::table('goods') ->leftJ ...

  3. Django 再次学习笔记整理

    url 路由系统 urlpatterns = [ # path('admin/', admin.site.urls), path('index/', views.index), re_path('^e ...

  4. 阿里云服务器ecs配置之安装mysql

    安装mysql数据库    1.安装工作:        下载 mysql 源安装包             [root@ming ~]# wget http://dev.mysql.com/get/ ...

  5. Insert or Merge

    7-13 Insert or Merge(25 分) According to Wikipedia: Insertion sort iterates, consuming one input elem ...

  6. 单链表 C语言 学习记录

    概念 链接方式存储 链接方式存储的线性表简称为链表(Linked List). 链表的具体存储表示为: 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的). 链表中 ...

  7. Python+selenium(Autolt实现上传)

    AutoIt是一个使用类似BASIC脚本语言的免费软件,被设计用来进行Windows GUI的自动化测试.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 此次小编介绍的是利用Auto ...

  8. NYOJ 239 月老的难题

    月老的难题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 月老准备给n个女孩与n个男孩牵红线,成就一对对美好的姻缘. 现在,由于一些原因,部分男孩与女孩可能结成幸福 ...

  9. mysql 分段统计数据

    一个简单的分段统计的问题:student 表{id,name,score} 字段,统计各个分数段的人数.规则:60以下不及格,60-80良,80-100优. SELECT sum(CASE when ...

  10. Python的3种格式化字符串方法

    Python中有3种format字符串的方式: 传统C语言式 命名参数 位置参数 1. 传统C语言式 和c语言里面的 sprintf 类似,参数格式也一样 title = "world&qu ...