企业网站建设需要考虑内容,爱站网新网址是多少,四子王旗建设局网站,怀化网络科技有限公司一、Mysql的两种存储引擎1、MyISAM#xff1a;①不支持事务#xff0c;但是整个操作是原子性的(事务具备四种特性#xff1a;原子性、一致性、隔离性、持久性)②不支持外键#xff0c;支持表锁#xff0c;每次所住的是整张表MyISAM的表锁有读锁和写锁(两个锁都是表级别)①不支持事务但是整个操作是原子性的(事务具备四种特性原子性、一致性、隔离性、持久性)②不支持外键支持表锁每次所住的是整张表MyISAM的表锁有读锁和写锁(两个锁都是表级别)表共享读锁和表独占写锁。在对MyISAM表进行读操作时不会阻塞其他用户对同一张表的读请求但是会阻塞其他用户对表的写请求对其进行写操作时会阻塞对同一表读操作和写操作MyISAM存储引擎的读锁和写锁是互斥的读写操作是串行的。那么一个进程请求某个MyISAM表的读锁同时另一个进程也请求同一表的写锁MySQL如何处理呢答案是写进程先获得锁。不仅如此即使读请求先到锁等待队列写请求后到写锁也会插到读锁请求之前这是因为MySQL认为写请求一般比读请求要重要。这也正是MyISAM表不太适合于有大量更新操作和查询操作应用的原因因为大量的更新操作会造成查询操作很难获得读锁从而可能永远阻塞。这种情况有时可能会变得非常糟糕③一个MyISAM表有三个文件索引文件表结构文件数据文件④存储表的总行数执行select count(*) from table时只要简单的读出保存好的行数即可(myisam存储引擎的表count(*)速度快的也仅仅是不带where条件的count。这个想想容易理解的因为你带了where限制条件原来所以中缓存的表总数能够直接返回用吗不能用。这个查询引擎也是需要根据where条件去表中扫描数据进行统计返回的。)⑤采用非聚集索引索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致但是辅索引不用保证唯一性。⑥支持全文索引和空间索引⑦对于AUTO_INCREMENT类型的字段在MyISAM表中可以和其他字段一起建立联合索引。MyISAM的主索引图索引文件的每个数据域存储指向数据文件的指针(每个索引指向了数据地址)MyISAM的辐索引索引文件的每个数据域存储指向数据文件的指针(每个索引指向了数据地址)辐索引不用保证唯一性2、Innodb①支持事务支持事务的四种隔离级别;是一种具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。②支持行锁和外键约束因此可以支持写并发③不存储总行数也就是说执行select count(*) from table时InnoDB要扫描一遍整个表来计算有多少行。注意的是当count(*)语句包含 where条件时两种表的操作是一样的。④对于AUTO_INCREMENT类型的字段InnoDB中必须包含只有该字段的索引⑤DELETE FROM table时InnoDB不会重新建立表而是一行一行的删除⑥一个Innodb表存储在一个文件内(共享表空间表大小不受操作系统的限制)也可能为多个(设置为独立表空间表大小受操作系统限制大小为2G)受操作系统文件大小的限制⑦主键索引采用聚集索引(索引的数据域存储数据文件本身)辅索引的数据域存储主键的值因此从辅索引查找数据需要先通过辅索引找到主键值再访问主键索引最好使用自增主键防止插入数据时为维持B树结构文件的大调整。Innodb的主索引图:(索引位置上存储的直接是数据本身)Innodb的辐索引图:总结大图参考:https://www.cnblogs.com/wangdake-qq/p/7358322.htmlhttps://blog.csdn.net/qq_35181209/article/details/78030110