[{"data":1,"prerenderedAt":57},["ShallowReactive",2],{"article-87":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":16,"status":17,"is_open":17,"is_deleted":14,"is_top":14,"is_recommend":14,"create_time":18,"update_time":19,"image_id":20,"url":13,"member_id":14,"cate_name":21,"prev":22,"next":25,"tags":28,"words":32,"read_time":33,"comments":17,"cover":34,"relevant":35},87,"MySQL中InnoDB和MyISAM区别","mysql","InnoDB具有事务，支持4个事务隔离级别，回滚，崩溃修复能力和多版本并发的事务安全，包括ACID.如果应用中需要执行大量的INSERT或UPDATE操作，则应该使用InnoDB,这样可以提高多用户并发操作的性能。MyISAM管理非事务表，提供高速存储和检索，以及全文搜索能力，如果应用中需要执行大量的SELECT查询，那么MyISAM是更好的选择。",6,"###### MySQL中InnoDB和MyISAM区别\n\n###### 1、事务和外键\n\nInnoDB具有事务，支持4个事务隔离级别，回滚，崩溃修复能力和多版本并发的事务安全，包括ACID.如果应用中需要执行大量的INSERT或UPDATE操作，则应该使用InnoDB,这样可以提高多用户并发操作的性能。\n\nMyISAM管理非事务表，提供高速存储和检索，以及全文搜索能力，如果应用中需要执行大量的SELECT查询，那么MyISAM是更好的选择。\n\n###### 2、全文索引\n\nInnoDB不支持全文索引，如果一定要，最好使用sphinx等搜索引擎。\n\nMyISAM对中文支持的不是很好，新版的InnoDB已经支持了\n\n###### 3、锁\n\nMySQL支持三种锁定级别，行级，页级，表级；\n\nMyISAM支持表级锁定，InnoDB表的行锁也不是绝对的，如果在执行一个SQL语句时MyISAM不能确定要扫描的范围，InnoDB表同样会锁全表，\n\n例如\n\n```mysql\nUPDATE table SET num=1 WHERE name LIKE '%aaa%'\n```\n\n###### 4、存储\n\nMyISAM在磁盘上存储成三个文件，第一个文件的名字以表的名字开始，扩展名指出文件类型，.frm文件存储表定义，数据文件扩展名为.MYD，索引文件的扩展名是.MYI\n\nInnoDB基于磁盘的资源是InnoDB表空间数据文件和它的日志文件，InnoDB表的大小只受限于操作系统文件的大小\n\n```bash\n注意：MyISAM表是保存成文件形式，在跨平台的数据转移中使用MyISAM存储省去不少麻烦\n```\n\n###### 5、索引\n\nInnoDB（索引组织表）使用的聚簇索引，索引就是数据，顺序存储，因此能缓存索引，也能缓存数据\n\nMyISAM（堆组织表）使用的是非聚簇索引，索引和文件分开，随机存储，只能缓存索引\n\n###### 6、并发\n\nMyISAM读写互相阻塞，不仅在写入的时候阻塞读取，还会在读取的时候阻塞写入，但读本身并不会阻塞另外的读\n\nInnoDB读写阻塞与事务隔离级别相关\n\n###### 表格对比\n\n| 属性              | MyISAM   | InnoDB |\n| ----------------- | -------- | ------ |\n| 事务              | 不支持   | 支持   |\n| 锁粒度            | 表锁     | 行锁   |\n| 存储              | 拆分文件 | 表空间 |\n| 隔离等级          | 无       | 所有   |\n| 可移植格式        | 是       | 是     |\n| 引用完整性        | 否       | 是     |\n| 数据主键          | 否       | 是     |\n| MySQL缓存数据记录 | 无       | 有     |\n| 可用性            | 全版本   | 全版本 |",null,0,770,"",1,"2020-06-12 17:11:21","2026-04-19 15:04:39",131,"Mysql",{"id":23,"title":24},86,"MySQL查询表结构命令",{"id":26,"title":27},88,"MySQL实现循环插入千万级数据",[29],{"id":30,"name":31},26,"MySQL",811,2,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Farticle\u002F6f\u002F78d912c258941ad444dd941e898202.jpg",[36,41,46,49,52],{"id":37,"title":38,"create_time":39,"description":40},90,"Redis常见使用场景","2020-06-17 16:09:42","Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，并提供多种语言的API。本篇文章，主要介绍利用PHP使用Redis，主要的应用场景。",{"id":42,"title":43,"create_time":44,"description":45},94,"客户端连接MySQL8提示 caching-sha2-password 问题","2020-10-19 10:55:26","在安装mysql8的时候如果选择了密码加密，之后用客户端连接比如navicate，会提示客户端连接caching-sha2-password,是由于客户端不支持这种插件，可以通过如下方式进行修改：",{"id":26,"title":27,"create_time":47,"description":48},"2020-06-12 17:56:22","对于一些数据量较大的系统，数据库面临的问题除了查询效率低下，还有就是数据入库时间长。特别像报表系统，可能每天花费在数据导入上的时间就会长达几个小时之久。因此，优化数据库插入性能是很有意义的。",{"id":23,"title":24,"create_time":50,"description":51},"2020-06-09 11:30:00","###### MySQL查询表结构命令\n\n###### 1、查询表结构\n\n主要显示字段类型主键是否允许为空等\n\n```mysql\nDESC 表名;\n```\n\n结果显示\n\n| Field | Type         | Null | Key  | Default | Extra          |\n| :---- | ------------ | ---- | ---- | ------- | -------------- |\n| id    | int(11)      | NO   | P",{"id":53,"title":54,"create_time":55,"description":56},74,"超过经理收入的员工","2020-01-02 16:21:43","###### 题目\n",1783431658197]