MySQL总结03
MySQL表的引擎常用的有两种:MyISAM、InnoDB
MyISAM引擎
MySQL5.5之前数据库默认的存储引擎都是MyISAM,MySQL5.5之后(包括5.5)用的是InnoDB。
每一个MyISAM表都对应三个文件,三个文件的文件名相同,但扩展名不同,可以通过文件系统命令查看(file filename):
.frm:文件保存表的定义,这个文件不是MyISAM引擎的一部分,而是服务器的一部分
.MYD:保存表的数据
.MYI:表的索引文件
InnoDB引擎
MySQL5.5之后(包括)MySQL使用InnoDB引擎。InnoDB的表存储只有一个文件,这个文件可以通过配置MySQL参数实现分表文件存储。它和MyISAM的最大
区别是,InnoDB具有事物的完整性和更高的并发性以及行级锁定特点
MyISAM引擎特点
不支持事物(事物是指逻辑上的一组操作,要么全成功,要么全失败)
表级锁定(更新时锁定整个表):其锁定机制是表级索引,这虽然可以让锁定的实体很小,但同时大大降低了其并发性能
读写互相阻塞:不仅会在写入的时候阻塞读取,MyISAM还会在读取的时候阻塞写。但是读本身并不会阻塞另外的读
只会缓存索引:MyISAM可以通过key_buffer_size缓存索引,以大大提高访问性能磁盘IO,但这个缓存区只会缓存索引,不会缓存数据
读取速度较快,暂用资源相对少
不支持外键索引,但支持全文索引
MyISAM引擎调优
设置合适的索引(缓存机制)
调整读写优先级,根据实际需求确保重要操作更优先执行
启用延迟插入改善大批量写入性能(批量)
尽量顺序操作让insert数据都写入到尾部,减少阻塞
降低并发数(减少对MySQL访问)
对于相对静态的数据库数据,充分利用memcached或query cache服务提高访问效率
查看query cache配置: grep query my.cnf主从同步的主库使用InnoDB,从库使用MyISAM
InnoDB引擎特点
InnoDB引擎调优
更改表的引擎
alter table tablename engine=INNODB/MYISAM
最新文章
- ABP理论学习之OData集成(新增)
- Android BLE 蓝牙编程(四)
- push_back模式工作
- C#编程利器之一:类(Class)【转】
- 【cs229-Lecture18】线性二次型调节控制
- nn
- Clang之词法分析Lex
- Python学习中的一些小例子
- 连连看(dfs)
- 002dayPython学习编码
- Django--CRM--QueryDict, 模糊搜索, 加行级锁
- python --------------网络(socket)编程
- POJ 1064 Cable master (二分法+精度控制)
- More is better
- python计算数组中对象出现的次数并且按照字典输出
- Android Error:Execution failed for task ':app:compileDebugJavaWithJavac' 解决方案
- NOIP 2016 换教室 (luogu 1850 &; uoj 262) - 概率与期望 - 动态规划
- [Uva P11168] Airport
- hadoop MapReduce —— 输出每个单词所对应的文件
- sqlplus sys as sysdba