博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql的MyISAM 和 InnoDB 的区别?优化MYSQL数据库的方法?
阅读量:6534 次
发布时间:2019-06-24

本文共 1027 字,大约阅读时间需要 3 分钟。

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

转载于:https://www.cnblogs.com/xiaomifeng/p/4655401.html

你可能感兴趣的文章
Android Activity生命周期详解
查看>>
安全策略的制定企业经营的基础
查看>>
进制准换 base_convert()
查看>>
25个增强iOS应用程序性能的提示和技巧
查看>>
c语言学习三
查看>>
实验:CentOS下构建私有CA
查看>>
Linux下查看Tomcat的控制台输出信息
查看>>
第十一课 xshell实现linux与windows互文件、用户与密码的配置文件、用户和用户组的管理...
查看>>
jQuery EasyUI使用教程之使用虚拟滚动视图显示海量数据
查看>>
jQuery EasyUI使用教程之添加节点到树形菜单
查看>>
BCGControlBar中文教程之Ribbon Backstage视图(三)
查看>>
《Linux学习并不难》文件/目录管理(7):rmdir命令删除空目录
查看>>
8天学通MongoDB——第四天 索引操作
查看>>
简单登录系统
查看>>
51CTO学院四周年# 每天进步一点点”;
查看>>
maven中对jsp预编译方法
查看>>
abr-summary 和asbr-summary命令中的not-advertise参数
查看>>
数据库隔离级别
查看>>
小型企业局域网免费上网行为管理方案
查看>>
【研究任务】热迁移方式——pre-copy、post-copy和x-multifd
查看>>