精华内容
下载资源
问答
  • Mysql引擎 Innodb和MyISAM的区别

    千次阅读 2016-02-19 17:45:32
    Mysql数据库分为Innodb和Myisam两类。两者最主要的区别是:Innodb支持事务处理、外键行级锁.而MyISAM不支持,所以如果CUD比较频繁或要求事务一致性的,使用Innodb比较好,反之使用Myisam比较好。具体区别如下: 1...

    本文是摘抄其他网文整理而成。create database xxx engine=Innodb

    Mysql数据库分为Innodb和Myisam两类。两者最主要的区别是:Innodb支持事务处理、外键和行级锁.而MyISAM不支持,所以如果CUD比较频繁或要求事务一致性的,使用Innodb比较好,反之使用Myisam比较好。具体区别如下:

    1、索引:MyISAM的索引和数据是分开的,并且索引是有压缩的,而Innodb是索引和数据放在一起,且没有使用压缩,因而Innodb比MyISAM体积更大。MyISAM每张表都包括三种文件:表定义文件(.frm)、数据文件(.myd)和索引文件(.myi),而Innodb通常许多表保存在同一个文件中。此外,如果表数据非常大,通常也使用MyISAM。

    2、InnoDB不支持FULLTEXT类型的索引。

    3、对于AUTO_INCREMENT类型的字段,InnoDB中必须单独建索引,而在MyISAM中可以和其他字段一起建立联合索引。

    4、没有where的SELECT COUNT(*):MyISAM始终保留一张表的行数,因此这条语句几乎瞬间就可以执行完,而Innodb会一行行的累加。

    5、锁:MyISAM表锁,Innodb行锁

    展开全文
  • 一.myisam引擎  1.mysql默认引擎,不支持事务*  2.表级锁定,更新时,锁定机制是整张表被锁定,其它连接无法更新表的数据,效率比较低下.锁的机制成本很少,但大大降低了并发性能*  3.读写互相阻塞,写的时候阻塞读,...
    一.myisam引擎
    
        1.mysql默认引擎,不支持事务*
        2.表级锁定,更新时,锁定机制是整张表被锁定,其它连接无法更新表的数据,效率比较低下.锁的机制成本很少,但大大降低了并发性能*
        3.读写互相阻塞,写的时候阻塞读,读的时候也阻塞写,但读与读之间不阻塞*
        4.只对索引进行缓存,虽然key_buffer可以大幅提高性能,减少磁盘IO,但对数据不缓存
        5.适合读业务比较多的生产环境,比如BLOG等,读的速度比较快.
        6.占用资源比较少.服务器硬件不好时.可以考虑使用
        7.数据恢复没有innodb引擎恢复的完美
        8.支持全文索引,不支持外键约束
    二.mysiam引擎应用场景:
        1.不需要事务支持的场景,读数据多的网站.
        2.并发相对较低的业务,因为表级锁定的机制限制
        3.数据修改相对较少的业务.阻塞问题
        4.对数据要求一致性不高的业务.
    三.myisam引擎优化:
        1.尽量索引,缓存机制
        2.调整读写优先级
        3.启用延迟插入.
        4.生产环境应用memcache缓存的多.Mysql本身的缓存为用少
    四.innodb引擎
        1.支持事务,四个级别的事务
        2.锁定机制一般是行级锁定.更新时只锁定当前行,其它的行.没关系,可以继续读写.全表扫描.还是表锁*
        3.读写阻塞与事务的隔离相关,读取速度一般*
        4.可以缓存数据和索引,高效的缓存特性
        5.支持分区,表空间.
        5.适合读写业务比较多的环境,比如BBS等.一般的生产环境,也推荐用innodb.效率高
        6.服务器资源开销大
        8.支持外键约束,不支持全文索引.
    五.innodb应用场景
        1.需要事务支持的业务
        2.适合高并发的业务,行级锁定.对高并发有很好的适应能力.但要确定查询是通过索引完成.
        3.数据更新比较频繁的场景.如BBS
        4.数据一致性要求较高
        5.硬件设备内存较大时,可以利用innodb较好的缓存能力来提高内存利用率.尽可能的减少磁盘IO
    六.innodb调优
        1.my.cnf中参数
            [root@ser200 3306]# grep -i "innodb" my.cnf 
            default_table_type = InnoDB
            innodb_additional_mem_pool_size = 4M
            innodb_buffer_pool_size = 32M            #Innodb核心参数,生产环境会给的很大.16G内存,双实例,会给2G的缓存
            innodb_data_file_path = ibdata1:128M:autoextend
            innodb_file_io_threads = 4
            innodb_thread_concurrency = 8
            innodb_flush_log_at_trx_commit = 2
            innodb_log_buffer_size = 2M
            innodb_log_file_size = 4M
            innodb_log_files_in_group = 3
            innodb_max_dirty_pages_pct = 90
            innodb_lock_wait_timeout = 120
            innodb_file_per_table = 0

            生产环境16G内存服务器调优实例:
            default_table_type = InnoDB
            innodb_additional_mem_pool_size = 16M
            innodb_buffer_pool_size = 2048M            #Innodb核心参数,生产环境会给的很大.16G内存,双实例,会给2G的缓存
            innodb_data_file_path = ibdata1:1024M:autoextend
            innodb_file_io_threads = 4
            innodb_thread_concurrency = 8
            innodb_flush_log_at_trx_commit = 2
            innodb_log_buffer_size = 16M
            innodb_log_file_size = 128M
            innodb_log_files_in_group = 3
            innodb_max_dirty_pages_pct = 90
            innodb_lock_wait_timeout = 120
            innodb_file_per_table = 0
        生产环境设置好参数,不怎么会改动上面的参数.主要是SQL语句的调优,改上面参数作用有限.最核心优化是每个语句走索引
        2.主键尽可能小.包括索引
        3.尽量避免全表扫描.因为会造成表锁
        4.尽量缓存所有的数据和索引,提高响应速度,减少磁盘IO消耗
            发现:数据库核心调优.让用户尽量去缓存上找数据,到内存找数据,少到磁盘上找数据.
        5.大批量小插入,尽量自己控制事务,而不要使用autocommit自己提交
        6.合理设置flush_log_at_trx_commit,不要过份追求安全性.
    展开全文
  • 主要介绍了Mysql存储引擎InnoDB和Myisam的六大区别,本文从构成上、事务处理、SQL操作、自动ID、表行数等方面讲解了它的区别,需要的朋友可以参考下
  • MySQLInnoDB和MyISAM存储引擎的区别

    多人点赞 2021-07-13 10:52:14
    详细介绍了MysqlInnoDB和MyISAM存储引擎的区别。

    详细介绍了MySQL 的InnoDB和MyISAM存储引擎的区别。

    存储引擎主要负责数据的存储和提取。其架构模式是插件式的,包括InnoDB、MyISAM、Memory 等多个可选的存储引擎,InnoDB 在5.5.5后成为默认存储引擎。存储引擎通过API与上层进行通信,这些API屏蔽了不同存储引擎之间的差异,使得这些差异对上层查询过程透明。MySQL的存储引擎架构将查询处理以及其他任务系统和数据的存储处理分离开来,这样做的好处在于可以根据需要灵活选择存储引擎,使得MySQL的架构具备很大的灵活性。

    MySQL 5.5 之前,MyISAM 引擎是 MySQL 的默认存储引擎。MySQL 5.5版本引入InnoDB事务性数据库引擎,MySQL 5.5 版本及其之后默认的存储引擎为 InnoDB。

    Mysql的InnoDB和MyISAM存储引擎的常见区别如下:

    1. 锁支持:MyISAM 只有表级锁(table-level locking),读取时加共享表锁,写入时加排它表锁,MyISAM 一锁就是锁住了整张表,在并发写的时候InnoDB性能远超MyISAM。而 InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁,行锁大幅度提高了多用户并发操作的新能,但行锁,只是在使用了索引时是有效的,如果没使用索引则会锁全表。
    2. 事务支持: MyISAM 不提供事务支持,InnoDB 提供事务支持,具有提交(commit)和回滚(rollback)事务的能力,这一点保证数据的正确性和完整性非常重要。
      1. MySQL InnoDB 引擎使用 redo log(重做日志) 保证事务的持久性,使用 undo log(回滚日志) 来保证事务的原子性。
      2. MySQL InnoDB 引擎通过 锁机制、MVCC 等手段来保证事务的隔离性( 默认支持的隔离级别是 REPEATABLE-READ )。
      3. 保证了事务的持久性、原子性、隔离性之后,一致性才能得到保障。
    3. 外键支持:MyISAM 不支持,而 InnoDB 支持。但是一般不在数据库使用外键,而是在应用层解决,使用外键会造成级联更新,且级联更新是强阻塞,存在数据库更新风暴的风险;外键用时也会影响数据库的插入速度。
    4. 主键支持:MyISAM允许没有主键的表存在。InnoDB表必须有主键,如果没有设定主键,就会自动生成一个 6 字节隐藏列作为主键列(用户不可见)。
    5. 数据库崩溃恢复的支持:MyISAM 不支持,而 InnoDB 支持。使用 InnoDB 的数据库在异常崩溃后,数据库重新启动的时候会保证数据库恢复到崩溃前的状态。这个恢复的过程依赖于 redo log、undo log、bin log。
    6. MVCC的支持:MyISAM 不支持,而 InnoDB 支持。MVCC 可以看作是行级锁的一个升级,可以有效减少加锁操作,提供性能。
    7. 主键自增记录:主键自增时只会比较最大自增主键值。MyISAM 表会把自增主键的最大ID记录到表数据文件里,重启MySQL 自增主键的最大ID也不会丢失。InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库会导致最大 ID 丢失,会以表中实际存在的最大主键为准。
      1. 实际上MySQL自增主键不能持久化算是一个臭名昭著的bug:https://bugs.mysql.com/bug.php?id=199。所以在Mysql 8.0后,InnoDB会把自增主键计数器的最新值写入redo log日志中,即使Mysql数据库发生重启,InnoDB也会根据redo log中的计数器信息来初始化其内存值,再也不怕自增主键丢失了。
    8. 索引结构:MyISAM使用非聚集索引,索引和数据分开,只缓存索引;InnoDB使用聚集索引,主索引和数据存在一个文件。
    9. 行数记录:InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快,但前提是没有任何WHERE条件,如果有条件,则此时都会去实际地去计算表的行数;

    参考资料:

    1. 《 MySQL 技术内幕: InnoDB 存储引擎》
    2. 《高性能 MySQL》

    如有需要交流,或者文章有误,请直接留言。另外希望点赞、收藏、关注,我将不间断更新各种Java学习博客!

    展开全文
  • 1、InnoDB MyISAM 存储引擎的区别;2、InnoDB 存储引擎的索引实现;3、MyISAM 存储引擎的索引实现;4、MyISAM InnoDB 引擎中 count(*) 的实现方式;5、InnoDB 引擎中行级锁的优缺点;6、MyISAM InnoDB 引擎...

    什么是存储引擎

    从逻辑架构层面分析,MySQL 可以分为 Server 层和存储引擎层两部分。其中,存储引擎是 MySQL 区别于其它数据库的一个重要特性。

    这里的存储引擎是什么意思呢?

    数据库的诉求是对数据进行存储与管理。具体的数据是要保存在文件中还是内存中,索引采用哪些数据结构以及怎么保存,锁的粒度以及实现方式…等等,而选择具体方式来实现这些功能的组件在 MySQL 中被称作存储引擎。如 InnoDB 存储引擎将数据保存在文件中,支持事务,锁粒度可以支持行锁;Memory 存储引擎将数据保存在内存中,不支持事务,锁粒度只支持表锁。

    MySQL 的存储引擎是基于表级别的。存储引擎的好处是,每个存储引擎都有各自的特点,我们可以根据具体的使用场景,来建立不同存储引擎的表。

    MySQL 中有很多的存储引擎,其中 InnoDB 和 MyISAM 存储引擎是其中比较常用的,接下来我们来分析一下这两种存储引擎的区别。

    InnoDB 和 MyISAM 存储引擎的区别

    InnoDBMyISAM
    存储结构.frm - 表结构文件,
    .ibd - 存储数据和索引的文件
    (或所有数据和索引保存在共享表空间文件中)
    .frm - 表结构文件
    .MYD(MYData) - 存储数据的文件
    .MYI(MYIndex) - 存储索引的文件
    事务支持不支持
    外键支持不支持
    索引实现方式B+树索引,InnoDB 是索引组织表B+树索引,MyISAM 是堆组织表
    锁支持粒度行级锁(默认)、表级锁表级锁
    记录存储顺序按主键大小有序插入按记录插入顺序保存
    selectMyISAM 性能更优
    insert、update、deleteInnoDB 性能更优
    select count(*)MyISAM 更快
    哈希索引支持(自适应 HASH)不支持
    全文索引不支持支持
    适用场景主要面向联机事务处理(OLTP)的应用
    (Online Transaction Processing)
    主要面向联机分析处理(OLAP)的应用
    (Online Analytical Processing)
    默认存储引擎MySQL5.5之后 InnoDB 是默认存储引擎MySQL5.1.X之前 MyISAM 是默认存储引擎

    InnoDB 存储引擎的索引实现

    InnoDB 存储引擎把数据放在聚簇索引上,辅助索引保存的是聚簇索引的键值(如主键 id )。这种方式,我们称之为索引组织表(IOT:Index Organizied Table)。

    InnoDB选取聚簇索引的规则如下:

    • 如果表中定义了主键,则主键为聚簇索引;
    • 如果没有主键,选择第一个非空的唯一索引为聚簇索引;
    • 如果以上都没有,InnoDB 会隐式定义一个6字节的 rowid 主键来作为聚簇索引。

    假如我们有这样一个表,建表语句如下:

    CREATE TABLE `t_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
      `name` varchar(32) NOT NULL COMMENT '姓名',
      `age` tinyint(3) unsigned NOT NULL COMMENT '年龄',
      `gender` tinyint(3) unsigned NOT NULL COMMENT '性别:1男,0女',
      PRIMARY KEY (`id`),
      KEY `idx_name` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    InnoDB 中 聚簇索引 和 辅助索引 的结构如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    名词 “聚簇” 表示数据行和相邻的键值紧凑的存储在一起。因为不能同时把数据行存储在多个不同的地方,所以一个表只能有一个聚簇索引。但辅助索引可以有很多个。

    MyISAM 存储引擎的索引实现

    MyISAM 存储引擎采用的是把数据单独存放,索引上保存数据位置的数据组织形式。这种方式,我们称之为堆组织表(HOT:Heap Organizied Table)。

    还是上边的表和数据,MyISAM 中的索引结构如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    从上图可以看出,MyISAM 存储引擎中主键索引和辅助索引的结构是相同的,索引中保存的都是数据所在的物理地址。它们的不同点在于,主键不允许重复,而辅助索引字段可以允许重复。

    InnoDB 引擎中行级锁的优缺点

    顾名思义,行级锁就是针对数据表中行记录的锁。比如事务 A 中对一行数据做了更新操作,而这时候事务 B 也要更新同一行数据,则必须等事务 A 操作完成并提交事务后才能进行更新。

    MySQL 的行级锁是在引擎层由各个引擎自己实现的,InnoDB 是支持行级锁的,这也是 MyISAM 被 InnoDB 替代的重要原因之一。

    InnoDB的行级锁是实现在索引上的,而不是锁在物理行记录上。如果访问没有命中索引,也就无法使用行级锁,将会退化为表级锁。

    行级锁的优点有:

    • 在很多线程请求不同记录时减少锁冲突,锁定的数量越少,并发度越高。
    • 事务回滚时减少改变数据。
    • 使长时间对单独的一行记录加锁成为可能。

    行级锁的缺点有:

    • 行级锁比页级锁和表级锁占用更多的内存。
    • 表级锁是不会出现死锁的,行级锁和页级锁使用不当会出现死锁问题。
    • 当对表的操作绝大多数都是读取时,表级锁比页级锁和行级锁性能更高。

    InnoDB 对死锁的处理:

    InnoDB 引擎采用主动死锁检测策略,当发现死锁后,InnoDB 会主动回滚死锁链条中代价更低的那个事务(一般是持有锁较少的事务),让其他事务得以继续执行。

    MyISAM 和 InnoDB 引擎中 count(*) 的实现方式

    以 select count(*) from t 这条语句为例(注意这里不带任何的 where 条件)。

    在 MyISAM 引擎 中,每个表的总行数都会在内存和磁盘文件中进行保存,内存中的 count 变量值通过读取文件中的 count 值来进行初始化。当执行 count(*) 语句的时候,会直接将内存中保存的数值返回,所以执行非常快。

    而在 InnoDB 引擎中,当执行 count(*) 的时候,它需要一行一行的进行统计和计数,并将最终的统计结果返回。所以,随着表中数据越来越多,使用 InnoDB 引擎的表,count(*) 执行得也会越来越慢。

    那为什么 InnoDB 引擎就不能像 MyISAM 引擎一样,也把总行数保存到内存和磁盘文件中呢?

    这是因为 InnoDB 引擎实现了多版本并发控制(MVCC)的原因:对同一个表,不同事物在同一时刻,看到的数据可能是不一样的。

    但如果加了 where 条件的话,MyISAM 引擎和 InnoDB 引擎一样,也是不能返回的这么快的。

    MyISAM 和 InnoDB 引擎适合场景

    适合 MyISAM 引擎的场景:

    • 不要求事务。
    • 对数据增删改频率不高,查询非常频繁。
    • 频繁执行全表count语句。

    适合 InnoDB 引擎的场景:

    • 要求事务。
    • 数据增删改相当频繁。
    • MySQL5.5 版本之后 InnoDB 已经成为 Mysql 的默认存储引擎,如果不确定选择哪种,建议用 InnoDB 。
    展开全文
  • InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。
  • 上次面试中被问到mysql的搜索引擎innoDB和myisam的区别,一脸懵逼。面试后赶紧查了一下,其主要区别如下: 1、存储文件: Innodb存储的文件有.frm格式的表定义文件.ibd格式的数据文件;而Myisam存储的文件包含.frm...
  • 存储引擎 简介 存储引擎通俗的说就是如何存储数据、如何为存储的数据建立索引如何更新、查询数据等技术的实现方法。...而MySql数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎...
  • 本篇内容对MySQL两个主要存储引擎InnoDB和MyISAM进行对比总结。InnoDB引擎InnoDB是一个事务型的存储引擎,设计目标是处理大数量数据时提供高性能的服务...
  • Innodb引擎InnoDB是一个事务型的存储引擎,设计目标是处理大数量数据时提供高性能的服务,它在运行时会在内存中建立缓冲池,用于缓冲数据索引。Innodb引擎优点1.支持事务处理、ACID事务特性; 2.实现了SQL标准的...
  • MySQLInnoDB和MyISAM的区别

    千次阅读 2021-05-18 10:54:04
    查看存储引擎的相关命令 查看所有可用引擎:show engines;...MySQL5.5版本后默认的存储引擎InnoDBInnoDB和MyISAM的区别 count运算:InnoDB不保存表的具体行数,查找表的行数时,需要全表扫描。MyISAM用一
  • innodb 支持事务, myisam 不支持事务 innodb 支持外键, myisam 不支持外键 innodb 支持行级锁, myisam 支持表级锁 myisam 保存了表的总行数count(*), innodb没有保存,需要扫描全表查询 ...
  • 随着新版本的发布,InnoDB成功上位,成为MySQL的默认引擎。这两种引擎的使用都非常广泛,那么它们有什么区别联系 简短介绍 InnoDB: 默认的事务型引擎,是最重要也是使用最广泛的存储引擎。可以用来处理大量的...
  • 1.事务处理InnoDB支持事务 MyISAM不支持 MyISAM的执行速度更快 性能更好2.增删改查操作MyISAM:如果执行大量的SELECT,会使用全文索引,是更好的选择 InnoDB:如果你的数据执行大量的INSERT或者UPDATE操作,出于...
  • InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,...
  • Mysql提供了五种存储引擎: 其中myisam和innodb(免费); 另外三种收费 Innodb和Myisam对比 1、Innodb会将数据和索引统一存储到ibdata1文件; myisam会自有表数据 Myisam会创建三个文件: Innodb只有一个文件 2...
  • mysql支持存储引擎有好几种,咱们这里主要讨论一下常用的InnodbMyISAM存储引擎。 1. InnoDB存储引擎 1.1 InnoDB特点 InnoDB存储引擎提供了具有提交、回滚崩溃恢复能力的事务安全。相比较MyISAM存储引擎,...
  • MySQL存储引擎InnoDB和MyISAM对比总结

    千次阅读 2017-10-03 12:19:03
    InnoDB是一个事务型的存储引擎,设计目标是处理大数量数据时提供高性能的服务,它在运行时会在内存中建立缓冲池,用于缓冲数据索引。 InnoDB引擎优点 1.支持事务处理、ACID事务特性; 2.实现了SQL标准的...
  • InnoDB写的性能略高于MyISAMMyISAM的读的性能远高于InnoDB,如果读的多,建议使用MyISAM MyISAM不支持事务。 --------------------------------------------------------------------------------------------...
  • innodb myisam 是许多人在使用 mysql 时最常用的两个表类型这两个表类型各有优 劣视具体应用而定 基本的差别 myisam 类型不支持事务处理等高级处理而 innodb 类型支持 myisam 类型的表强调的是性能其执行数度比 ...
  • 转载出处:http://jeck2046.blog.51cto.com/184478/90499InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而...
  • innodb和myisam是许多人在使用 mysql时最常用的两个表类型这两个表类型各有优 劣视具体应用而定 基本的差别myisam类型不支持事务处理等高级处理而 innodb类型支持myisam 类型的表强调的是性能其执行数度比 innodb...
  • MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: ...MyISAMInnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。 MySQL支持数个存储引擎
  • mysqlinnodb和myisam对比及索引原理区别

    万次阅读 多人点赞 2018-04-13 10:47:48
    InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了1、事务外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力多版本并发的事务安全,包括ACID。...
  • InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本 的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,...
  • Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器...
  • mysqlinnodb和myisam数据库引擎的认识,自己总结了一下并引用了网络上的相关测试应用做如下记录: mysql数据库新加了几个表,结果只有frm文件存在,如果直接复制到别的电脑,这几个表是提示错误的,为什么呢?...
  • mysql面试题,存储引擎InnoDB和MyISAM

    千次阅读 2019-06-23 13:39:55
    一些常见命令: ...从上图我们可以查看出 MySQL 当前默认的存储引擎InnoDB,并且在5.7版本所有的存储引擎中只有 InnoDB 是事务性存储引擎,也就是说只有 InnoDB 支持事务。 查看MySQL当前默认的存储引擎 我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,415
精华内容 46,166
关键字:

mysql引擎innodb和myisam

mysql 订阅