MyISAM 和 InnoDB 的基本区别

1.InnoDB不支持FULLTEXT类型的索引。

2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。

3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。

4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。MyISAM 是表所 innodb是行锁

5.LOAD TABLE FROM MASTER(从主负载表)操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “"2%”

6.InnoDB 支持事物

选择存储引擎 根据实际情况选择。

一般情况下如果查询多建议使用myIsam 。

如果你需要事务处理或是外键,那么InnoDB 可能是比较好的方式。

优化MYSQL数据库的方法:

1,选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM

2,使用join代替子查询

3,使用联合(UNION)来代替手动创建的临时表

4,事务处理(保证数据完整性,例如添加和修改同时,两者成立则都执行,一者失败都失败)

5,适当建立索引(如何建立索引?索引的利与弊?)

6,优化sql语句

7,explain可以看到mysql执行计划

8,分表(垂直分表,水平分表?)

相关阅读

http://www.phpernote.com/mysql/500.html

http://www.nowamagic.net/librarys/veda/detail/1899

mysql的MyISAM 和 InnoDB 的区别?优化MYSQL数据库的方法?的更多相关文章

  1. MySQL中MyISAM和InnoDB的区别

    MyISAM和InnoDB的区别 MySQL默认采用的是MyISAM. MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事 ...

  2. MySQL的MyISAM和InnoDB对比及优化(转)

    MyISAM和InnoDB是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是 ...

  3. 【mysql中myisam和innodb的区别】

    单击进入源网页 要点摘要: 1.查看mysql存储引擎的状态mysql> show engines; 2.查看mysql默认的存储引擎mysql> show variables like ...

  4. MySQL教程-MyISAM和InnoDB的区别

    MySQL的表类型MyISAM和InnoDB之间的最大区别是,InnoDB的支持事务.兄弟连教育( )来给大家做个对比: InnoDB支持一些新的功能:交易,行级锁,外键 InnoDB是高容量,高性能 ...

  5. MySQL中myisam与innodb的区别

    1.  myisam与innodb的5点不同 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>.InnoDB支持MV ...

  6. PHP开发必用的mysql那么你知道Mysql中MyISAM和InnoDB的区别吗?

    构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型. .frm文件存储表定义. 数据文件的扩展名为.MYD (MYData). 索引文件的扩展名 ...

  7. Mysql:MyIsam和InnoDB的区别

    MyISAM: 这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的 顺序访问方法) 的缩写,它是存储记录和文件的标准方法 ...

  8. Mysql引擎MyISAM和InnoDB的区别

    InnoDB的数据存储在表空间中,表空间是由InnoDB管理的一个黑盒子,由一系列的数据文件组成.InnoDB可以将每个表的数据和索引存放在单独的文件中. InnoDB采用MVCC来支持高并发,并且实 ...

  9. MYiSAM和InnoDB引擎区别(mysql)

    MyISAM 1.读取速度快. 2.※更新时锁整个表. 3.占用资源少. 4.适合读多写少的业务. 5.※不支持事务.   InnoDB 1.读取速度一般. 2.※更新时锁当前行. 3.占用资源高. ...

随机推荐

  1. 恶意程序入侵 dbuspm-session 发现了新的方法制这种恶意程序

    直接从一台没服务器上把这两文件scp到当前的服务器上并替换这两个程序就ok了!!!!这种方法测试成功!!!! 出现了一个比效麻烦的事,服务器的负载正常,内存也正常,但就是很卡. 通过查找到线索:htt ...

  2. win7下安装curl

    先去官网下载curl,地址https://winampplugins.co.uk/curl/,我下载的版本是curl_7_52_1_openssl_nghttp2_x64.然后执行curl.exe并且 ...

  3. 【DSP】CCS中.dat文件的格式

    转自“http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/168292” Here is the infor ...

  4. Django视图之URLconfs

    对于一个web程序而言,接收和处理用户的请求并返回响应是一个最基本的.也是最重要的功能. Django为这个功能取了一个好听的名字——“视图”. 而具体的代码实现往往是通过一个个函数,Django中也 ...

  5. 李洪强漫谈iOS开发[C语言-054]-函数

    // //  main.c //  02 翻译数字的优化 // //  Created by vic fan on 2017/6/4. //  Copyright © 2017年 李洪强. All r ...

  6. LeetCode: Word Break II 解题报告

    Word Break II Given a string s and a dictionary of words dict, add spaces in s to construct a senten ...

  7. poi 读取数据处理方式

    poi读取数据的时候空格,字符数据,数字类型数据处理方式 logger.info("============ExeclReader.readExeclToMapList() begin=== ...

  8. Linu 修改maven的setting保护文件

    查找目录 find / -name .m2 -d 查看文件: cat settings.xml 修改文件 vi settings.xml 修改后发现保存会出问题,报错W10: Warning: Cha ...

  9. 更新Python以及随后的nose,easy_install,pip,numpy,scipy和theano

    这里报错:ImportError: No module named models.dnn. 应该是PDNN的目录没有加入到PYTHONPATH当中,因而执行下一句: export PYTHONPATH ...

  10. 深入理解Java虚拟机 -- 读书笔记(1):JVM运行时数据区域

    深入理解Java虚拟机 -- 读书笔记:JVM运行时数据区域 本文转载:http://blog.csdn.net/jubincn/article/details/8607790 本系列为<深入理 ...