MySQL 存储引擎和锁

===============================================================================

存储引擎:

  1.介绍

存储引擎:Storage Engine(负责向下管理文件,向上提供关系模型)

  • MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能;

  • 表类型:表级别概念,不建议在同一个库中的表上使用不同的ENGINE;

常见的存储引擎:

  • MyISAM, Aria, InnoDB, MRG_MYISAM, CSV, BLACKHOLE, MEMORY, PERFORMANCE_SCHEMA, ARCHIVE, FEDERATED

查看数据库支持的存储引擎种类:

  • mysql> SHOW ENGINES;

查看默认的存储引擎:

  • mysql> SHOW GLOBA|[SESSION] VARIABLES [LIKE clause];

查看指定表的存储引擎:

  • mysql> SHOW TABLE STATUS LIKE clause;

创建表时设定其存储引擎的方法:

  • CREATE TABLE ... ENGINE[=]STORAGE_ENGINE_NAME ...

演示:

1.查看mysql所支持的存储引擎;

MariaDB [mysql]> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                                     | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |
| FEDERATED          | YES     | FederatedX pluggable storage engine                                        | YES          | NO   | YES        |
| Aria               | YES     | Crash-safe tables with MyISAM heritage                                     | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)

2.查看默认的存储引擎;

MariaDB [mysql]> show global variables like '%storage_engine%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
| storage_engine         | InnoDB |
+------------------------+--------+
2 rows in set (0.01 sec)

3.查看指定表的存储引擎(即查看表的状态信息)

MariaDB [mysql]> SHOW TABLE STATUS LIKE 'user'\G
*************************** 1. row ***************************Name: userEngine: MyISAMVersion: 10Row_format: DynamicRows: 10Avg_row_length: 102Data_length: 1024
Max_data_length: 281474976710655Index_length: 2048Data_free: 0Auto_increment: NULLCreate_time: 2016-10-12 20:06:15Update_time: 2016-11-12 18:13:46Check_time: NULLCollation: utf8_binChecksum: NULLCreate_options: Comment: Users and global privileges
1 row in set (0.00 sec)




 

InnoDB存储引擎

---Percona-XtraDB, Supports transactions(支持事务), row-level locking(行级锁), and foreign keys(外键)

表结构的定义:

  • 在数据库目录,tbl_name.frm

数据存储于“表空间(table space)"中:

所有InnoDB表的数据和索引存储于同一个表空间中;

◆表空间文件:datadir定义的目录中

  • 文件:ibdata1, ibdata2, ...

innodb_file_per_table=ON,意味着每表使用单独的表空间文件;

数据文件(数据和索引,存储于数据库目录): tbl_name.ibd

注意:

  • 默认所有innodb存储引擎的数据和索引都存储于一个表空间中;

  • 要想使每表使用单独的表空间文件,就要在/etc/my.cnf中定义

功能:

事务型存储引擎

  • 适合对事务要求较高的场景中,但较适用于处理大量短期事务;

基于MVCC(Mutli Version Concurrency Control)支持高并发;

  • 支持四个隔离级别,默认级别为 REPEATABLE-READ;间隙锁以防止幻读;

使用聚集索引(主键索引);

支持"自适应Hash索引";

锁粒度:

  • 行级锁;间隙锁;

查看innodb的状态

  • SHOW ENGINE INNODB STATUS

演示:

1.查看mysql数据库目录

[root@centos7 ~]# cd /var/lib/mysql/
[root@centos7 mysql]# ll -h
total 29M
-rw-rw---- 1 mysql mysql  16K Nov 26 21:40 aria_log.00000001
-rw-rw---- 1 mysql mysql   52 Nov 26 21:40 aria_log_control
drwx------ 2 mysql mysql 4.0K Nov 25 19:16 hellodb
-rw-rw---- 1 mysql mysql  18M Nov 27 11:20 ibdata1  //innodb存储引擎的数据文件存放位置,即公共表空间文件
-rw-rw---- 1 mysql mysql 5.0M Nov 27 11:20 ib_logfile0  //事物日志相关的文件
-rw-rw---- 1 mysql mysql 5.0M Nov 27 11:20 ib_logfile1  //事物日志相关的文件
drwx------ 2 mysql mysql 4.0K Oct 12 20:06 mysql
srwxrwxrwx 1 mysql mysql    0 Nov 27 09:49 mysql.sock
drwx------ 2 mysql mysql 4.0K Oct 12 20:06 performance_schema
drwx------ 2 mysql mysql  131 Oct 20 16:55 Syslog
drwx------ 2 mysql mysql   79 Nov 24 19:37 testdb   //创建的数据库目录
drwx------ 2 mysql mysql  36K Oct 13 10:22 ultrax
drwx------ 2 mysql mysql  12K Nov 12 21:47 zabbix

2.查看testdb数据库的文件,如下:

MariaDB [testdb]> show tables;  //testdb数据库中有两张表,对应/var/lib/mysql目录下的testdb目录
+------------------+
| Tables_in_testdb |
+------------------+
| tbl1             |
| tbl2             |
+------------------+
2 rows in set (0.00 sec)MariaDB [testdb]> show table status like 'tbl2'\G
*************************** 1. row ***************************Name: tbl2Engine: InnoDB    //存储引擎Version: 10Row_format: CompactRows: 3Avg_row_length: 5461Data_length: 16384
Max_data_length: 0Index_length: 0Data_free: 0Auto_increment: NULLCreate_time: 2016-11-24 19:37:41Update_time: NULLCheck_time: NULLCollation: latin1_swedish_ciChecksum: NULLCreate_options: Comment:
1 row in set (0.00 sec)MariaDB [testdb]> desc tbl2;   //查看表结构
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| id     | int(10) unsigned    | YES  |     | NULL    |       |
| name   | varchar(50)         | YES  |     | NULL    |       |
| age    | tinyint(3) unsigned | YES  |     | NULL    |       |
| gender | enum('F','M')       | YES  |     | NULL    |       |
+--------+---------------------+------+-----+---------+-------+
4 rows in set (0.01 sec)[root@centos7 mysql]# pwd
/var/lib/mysql
[root@centos7 mysql]# cd testdb/
[root@centos7 testdb]# ll
total 220
-rw-rw---- 1 mysql mysql    65 Nov 24 15:39 db.opt
-rw-rw---- 1 mysql mysql  8586 Nov 24 15:41 tbl1.frm  //定义表格式(tbl、tbl2的格式)
-rw-rw---- 1 mysql mysql 98304 Nov 24 16:00 tbl1.ibd  //数据存放位置,每表使用单独的表空间,不再使用默认的公共表空间 ibdata1
-rw-rw---- 1 mysql mysql  8654 Nov 24 19:37 tbl2.frm
-rw-rw---- 1 mysql mysql 98304 Nov 24 21:02 tbl2.ibd

3.innodb存储引擎的相关参数

MariaDB [testdb]> show variables like '%innodb%';
+-------------------------------------------+------------------------+
| Variable_name                             | Value                  |
+-------------------------------------------+------------------------+
| have_innodb                               | YES                    |
| ignore_builtin_innodb                     | OFF                    |
| innodb_adaptive_flushing                  | ON                     |
| innodb_adaptive_flushing_method           | estimate               |
| innodb_adaptive_hash_index                | ON                     |
| innodb_adaptive_hash_index_partitions     | 1                      |
| innodb_additional_mem_pool_size           | 8388608                |
| innodb_autoextend_increment               | 8                      |
| innodb_autoinc_lock_mode                  | 1                      |
| innodb_blocking_buffer_pool_restore       | OFF                    |
| innodb_buffer_pool_instances              | 1                      |
| innodb_buffer_pool_populate               | OFF                    |
| innodb_buffer_pool_restore_at_startup     | 0                      |
| innodb_buffer_pool_shm_checksum           | ON                     |
| innodb_buffer_pool_shm_key                | 0                      |
| innodb_buffer_pool_size                   | 134217728              |
| innodb_change_buffering                   | all                    |
| innodb_checkpoint_age_target              | 0                      |
| innodb_checksums                          | ON                     |
| innodb_commit_concurrency                 | 0                      |
| innodb_concurrency_tickets                | 500                    |
| innodb_corrupt_table_action               | assert                 |
| innodb_data_file_path                     | ibdata1:10M:autoextend |
| innodb_data_home_dir                      |                        |
| innodb_dict_size_limit                    | 0                      |
| innodb_doublewrite                        | ON                     |
| innodb_doublewrite_file                   |                        |
| innodb_fake_changes                       | OFF                    |
| innodb_fast_checksum                      | OFF                    |
| innodb_fast_shutdown                      | 1                      |
| innodb_file_format                        | Antelope               |
| innodb_file_format_check                  | ON                     |
| innodb_file_format_max                    | Antelope               |
| innodb_file_per_table                     | ON                     |
| innodb_flush_log_at_trx_commit            | 1                      |
| innodb_flush_method                       |                        |
| innodb_flush_neighbor_pages               | area                   |
| innodb_force_load_corrupted               | OFF                    |
| innodb_force_recovery                     | 0                      |
| innodb_ibuf_accel_rate                    | 100                    |
| innodb_ibuf_active_contract               | 1                      |
| innodb_ibuf_max_size                      | 67092480               |
| innodb_import_table_from_xtrabackup       | 0                      |
| innodb_io_capacity                        | 200                    |
| innodb_kill_idle_transaction              | 0                      |
| innodb_large_prefix                       | OFF                    |
| innodb_lazy_drop_table                    | 0                      |
| innodb_lock_wait_timeout                  | 50                     |
| innodb_locking_fake_changes               | ON                     |
| innodb_locks_unsafe_for_binlog            | OFF                    |
| innodb_log_block_size                     | 512                    |
| innodb_log_buffer_size                    | 8388608                |
| innodb_log_file_size                      | 5242880                |
| innodb_log_files_in_group                 | 2                      |
| innodb_log_group_home_dir                 | ./                     |
| innodb_max_bitmap_file_size               | 104857600              |
| innodb_max_changed_pages                  | 1000000                |
| innodb_max_dirty_pages_pct                | 75                     |
| innodb_max_purge_lag                      | 0                      |
| innodb_merge_sort_block_size              | 1048576                |
| innodb_mirrored_log_groups                | 1                      |
| innodb_old_blocks_pct                     | 37                     |
| innodb_old_blocks_time                    | 0                      |
| innodb_open_files                         | 300                    |
| innodb_page_size                          | 16384                  |
| innodb_print_all_deadlocks                | OFF                    |
| innodb_purge_batch_size                   | 20                     |
| innodb_purge_threads                      | 1                      |
| innodb_random_read_ahead                  | OFF                    |
| innodb_read_ahead                         | linear                 |
| innodb_read_ahead_threshold               | 56                     |
| innodb_read_io_threads                    | 4                      |
| innodb_recovery_stats                     | OFF                    |
| innodb_recovery_update_relay_log          | OFF                    |
| innodb_replication_delay                  | 0                      |
| innodb_rollback_on_timeout                | OFF                    |
| innodb_rollback_segments                  | 128                    |
| innodb_show_locks_held                    | 10                     |
| innodb_show_verbose_locks                 | 0                      |
| innodb_simulate_comp_failures             | 0                      |
| innodb_spin_wait_delay                    | 6                      |
| innodb_stats_auto_update                  | 1                      |
| innodb_stats_method                       | nulls_equal            |
| innodb_stats_modified_counter             | 0                      |
| innodb_stats_on_metadata                  | ON                     |
| innodb_stats_sample_pages                 | 8                      |
| innodb_stats_traditional                  | ON                     |
| innodb_stats_update_need_lock             | 1                      |
| innodb_strict_mode                        | OFF                    |
| innodb_support_xa                         | ON                     |
| innodb_sync_spin_loops                    | 30                     |
| innodb_table_locks                        | ON                     |
| innodb_thread_concurrency                 | 0                      |
| innodb_thread_concurrency_timer_based     | OFF                    |
| innodb_thread_sleep_delay                 | 10000                  |
| innodb_track_changed_pages                | OFF                    |
| innodb_use_atomic_writes                  | OFF                    |
| innodb_use_fallocate                      | OFF                    |
| innodb_use_global_flush_log_at_trx_commit | ON                     |
| innodb_use_native_aio                     | ON                     |
| innodb_use_stacktrace                     | OFF                    |
| innodb_use_sys_malloc                     | ON                     |
| innodb_use_sys_stats_table                | OFF                    |
| innodb_version                            | 5.5.43-MariaDB-37.2    |
| innodb_write_io_threads                   | 4                      |
+-------------------------------------------+------------------------+
105 rows in set (0.00 sec)

-------------------------------------------------------------------------------

innodb总结:

数据存储:表空间;

并发:MVCC,间隙锁,行级锁;

索引:聚集索引、辅助索引;

性能:预读操作、内存数据缓冲、内存索引缓存、自适应Hash索引、插入操作缓存区;

备份:支持热备;

MyISAM:存储引擎

特性:

  • 支持全文索引(FULLTEXT index)、压缩、空间函数(GIS);

  • 不支持事务;

  • 锁粒度:表级锁;

  • 崩溃无法保证表安全恢复

适用场景:

  • 只读或读多写少的场景、较小的表(以保证崩溃后恢复的时间较短);

文件:每个表有三个文件,存储于数据库目录中

  • tbl_name.frm:表格式定义;

  • tbl_name.MYD:数据文件;

  • tbl_name.MYI:索引文件;

总结:

  • 加锁和并发:表级锁;

  • 修复:手动或自动修复、但可能会丢失数据;

  • 索引:非聚集索引;

  • 延迟索引更新;

  • 表压缩;

演示:

MariaDB [hellodb]> show table status like 'students'\G
*************************** 1. row ***************************Name: studentsEngine: MyISAMVersion: 10Row_format: DynamicRows: 25Avg_row_length: 24Data_length: 624
Max_data_length: 281474976710655Index_length: 3072Data_free: 0Auto_increment: 26Create_time: 2016-11-27 15:01:38Update_time: 2016-11-27 15:01:38Check_time: NULLCollation: utf8_general_ciChecksum: NULLCreate_options: Comment:
[root@centos7 mysql]# cd hellodb/
[root@centos7 hellodb]# ll
total 140
-rw-rw---- 1 mysql mysql 8636 Nov 25 19:16 classes.frm  # 每个表有三个文件
-rw-rw---- 1 mysql mysql  172 Nov 25 19:16 classes.MYD
-rw-rw---- 1 mysql mysql 2048 Nov 25 19:16 classes.MYI
-rw-rw---- 1 mysql mysql 8630 Nov 25 19:16 coc.frm
-rw-rw---- 1 mysql mysql  112 Nov 25 19:16 coc.MYD
-rw-rw---- 1 mysql mysql 2048 Nov 25 19:16 coc.MYI
-rw-rw---- 1 mysql mysql 8602 Nov 25 19:16 courses.frm
-rw-rw---- 1 mysql mysql  144 Nov 25 19:16 courses.MYD
-rw-rw---- 1 mysql mysql 2048 Nov 25 19:16 courses.MYI
-rw-rw---- 1 mysql mysql   61 Nov 25 19:16 db.opt
-rw-rw---- 1 mysql mysql 8658 Nov 25 19:16 scores.frm
-rw-rw---- 1 mysql mysql  180 Nov 25 19:16 scores.MYD
-rw-rw---- 1 mysql mysql 2048 Nov 25 19:16 scores.MYI
-rw-rw---- 1 mysql mysql 8736 Nov 27 15:01 students.frm
-rw-rw---- 1 mysql mysql  624 Nov 27 15:01 students.MYD
-rw-rw---- 1 mysql mysql 3072 Nov 27 15:01 students.MYI
-rw-rw---- 1 mysql mysql 8656 Nov 25 19:16 teachers.frm
-rw-rw---- 1 mysql mysql   92 Nov 25 19:16 teachers.MYD
-rw-rw---- 1 mysql mysql 2048 Nov 25 19:16 teachers.MYI
-rw-rw---- 1 mysql mysql 8622 Nov 25 19:16 toc.frm
-rw-rw---- 1 mysql mysql    0 Nov 25 19:16 toc.MYD
-rw-rw---- 1 mysql mysql 1024 Nov 25 19:16 toc.MYI


其他存储引擎 

其它的存储引擎:

  • CSV:将CSV文件(以逗号分隔字段的文本文件)作为MySQL表文件;

  • MRG_MYISAM:将多个MyISAM表合并成的虚拟表;

  • BLACKHOLE:类似于/dev/null,不真正存储数据;

  • MEMORY:内存存储引擎,支持hash索引,表级锁,常用于临时表;

  • FEDERATED: 用于访问其它远程MySQL服务器上表的存储引擎接口;

MariaDB额外支持很多种存储引擎:

  • OQGraph、SphinxSE、TokuDB、Cassandra、CONNECT、SQUENCE、...

搜索引擎:

  • lucene:Solr, Elasticsearch

  • sphinx 



并发控制:锁

  锁:Lock 

锁类型 :

  • 读锁:共享锁,可被多个读操作共享;

  • 写锁:排它锁,独占锁;

锁粒度:

  • 表锁:在表级别施加锁,并发性较低;

  • 行锁:在行级别施加锁,并发性较高;

锁策略:在锁粒度及数据安全性之间寻求一种平衡机制;

  • 存储引擎:级别以及何时施加或释放锁由存储引擎自行决定;

  • MySQL Server:表级别,可自行决定,也允许显式请求;

锁类别:

  • 显式锁:用户手动请求的锁;

  • 隐式锁:存储引擎自行根据需要施加的锁;

显式锁的使用:

LOCK TABLES

  • LOCK TABLES  tbl_name  read|write, tbl_name read|write, ... //添加锁

  • UNLOCK TABLES //释放锁

FLUSH TABLES

强制把内存中表的相关数据同步到磁盘之后,再一次以施加指令的类型的锁之后打开

  • FLUSH TABLES tbl_name,... [WITH READ LOCK];

  • UNLOCK TABLES;

eg:

  • FLUSH TABLES WITH READ LOCK(表示把所有的表同步到磁盘上,然后再请求读锁)

SELECT cluase

锁定指定表中的行

  • [FOR UPDATE | LOCK IN SHARE MODE]

演示:

在node1会话中请求读锁,发现可以正常读数据,但不能写数据

MariaDB [testdb]> LOCK TABLES tbl2 READ;  # 请求读锁
Query OK, 0 rows affected (0.00 sec)MariaDB [testdb]> SELECT * FROM tbl2;  # 可以正常查看数据
+------+------+------+--------+
| id   | name | age  | gender |
+------+------+------+--------+
|    1 | tom  |   21 | NULL   |
|    2 | tao  |   15 | NULL   |
|    3 | jing |   22 | NULL   |
+------+------+------+--------+
3 rows in set (0.00 sec)MariaDB [testdb]> INSERT INTO tbl2 VALUES (4,'LinghuChong'); # 但是不能执行写操作,因为写操作为写锁,是独占的
ERROR 1099 (HY000): Table 'tbl2' was locked with a READ lock and can't be updated

在node2会话中,可以正常请求读锁,但是不能请求写锁,因为写锁只能是独占的,要想执行写操作必须保证其他会话中释放了所有的锁

MariaDB [testdb]> LOCK TABLES tbl2 READ;
Query OK, 0 rows affected (0.01 sec)MariaDB [testdb]> SELECT * FROM tbl2;
+------+------+------+--------+
| id   | name | age  | gender |
+------+------+------+--------+
|    1 | tom  |   21 | NULL   |
|    2 | tao  |   15 | NULL   |
|    3 | jing |   22 | NULL   |
+------+------+------+--------+
3 rows in set (0.01 sec)MariaDB [testdb]> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)MariaDB [testdb]> LOCK TABLES tbl2 WRITE; # 请求写锁,发现被阻塞,因为写锁是独占的,必须使node1会话中释放了读锁之后才可以请求读锁;# 在node1会话中释放读锁,再次请求写锁发现可以正常请求
MariaDB [testdb]> LOCK TABLES tbl2 WRITE;
Query OK, 0 rows affected (10.49 sec)   # 阻塞时长10.49s

此时,因为node2上请求了写锁,所以node1会话中再请求读锁,是被阻塞的,因为写锁为排他锁,连接写锁时,其他的会话中的任何读写操作均阻塞;只有等node2会话中写操作执行完成后释放了写锁,node1会话才可以请求读锁

MariaDB [testdb]> LOCK TABLES tbl2 READ; # 请求读锁阻塞# node2释放写锁后,请求读锁成功
MariaDB [testdb]> LOCK TABLES tbl2 READ;
Query OK, 0 rows affected (5.66 sec)   # 阻塞时长5.66s

注意:

大多数情况下,mysql都可以自行维护锁机制,而不用去手动施加。

转载于:https://blog.51cto.com/1992tao/1877053

MySQL 存储引擎和锁相关推荐

  1. WebDay19 MySQL存储引擎 索引 锁 集群

    MySQL存储引擎 索引 锁 集群 一.MySQL存储引擎 1.MySQL体系结构 2.MySQL存储引擎 3.常用引擎的特性对比 4.引擎的操作 5.总结:引擎的选择 二.MySQL索引 1.索引的 ...

  2. 深入MySQL存储引擎分析锁和排序的原理

    几个问题 为什么不建议使用订单号作为主键? 为什么要在需要排序的字段上加索引? for update 的记录不存在会导致锁住全表? redolog 和 binlog 有什么区别? MySQL 如何回滚 ...

  3. Mysql存储引擎及锁相关

    存储引擎 一.什么是存储引擎 Oracle,sqlserver等数据库只有一种存储引擎.Mysql提供插件式的存储引擎架构,可以根据需要选择存储引擎. 存储引擎是MylSQL的核心,是数据库底层软件组 ...

  4. 【MySQL】MySQL 存储引擎、索引、锁、集群

    MySQL存储引擎 MySQL体系结构 体系结构的概念任何一套系统当中,每个部件都能起到一定的作用! MySQL的体系结构 体系结构详解 客户端连接 支持接口:支持的客户端连接,例如C.Java.PH ...

  5. Mysql存储引擎Innodb的读写锁、行级锁

    读写锁 Mysql存储引擎Innodb在处理并发读或者写的时候,通过两种类型的锁来解决并发问题,这两种锁通常称为共享锁和排他锁,也叫读锁和写锁. 读锁是共享的,即多个客户端可以同时读取同一资源. 写锁 ...

  6. MySQL存储引擎,索引,锁机制

    一,MySQL存储引擎 介绍: MySQL数据库使用不同的机制存取表文件,包括存储方式,索引技巧,锁定水平等不同的功能,这些不同的技术以及配套的功能称为索引引擎 Oracle,Sqlserver等数据 ...

  7. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

  8. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  9. 第 3 章 MySQL 存储引擎简介

    3.1 MySQL 存储引擎概述 MyISAM存储引擎是MySQL默认的存储引擎,也是目前MySQL使用最为广泛的存储引擎之一.他的前身就是我们在MySQL发展历程中所提到的 ISAM,是ISAM的升 ...

最新文章

  1. TensorRT加速 ——NVIDIA终端AI芯片加速用,可以直接利用caffe或TensorFlow生成的模型来predict(inference)...
  2. pynput模块—键盘鼠标操作和监听
  3. 基于友善之臂ARM-ContexA9-ADC驱动开发
  4. 何小鹏退出UC浏览器母公司股东名单
  5. matlab 中的矩阵分解
  6. matlab把图例放在左边,如何将图例放在p之外
  7. [转载]从KX、KR用户的购镜选择谈到K5和其他
  8. 谷歌 Chrome 浏览器 隐藏标题 缩小标签页
  9. 【观察】戴尔:为核心数据“保驾护航”,为数字化转型“拨云见日”
  10. 工业机器人cloos_工业机器人的技术发展及其应用
  11. 一个失败的项目管理案例
  12. php源码dede,php网站管理系统 DedeCMS v5.7 SP2 UTF8 20180109正式版
  13. html放大镜小图标,图片放大镜jquery.jqzoom.js使用实例附放大镜图标
  14. 打印水果价格表(python)
  15. (OK) 编译 cm-13-kiwi for (华为 荣耀 5X) - 成功
  16. HUAWEIWATCH GT3有哪些功能?华为新款手表测评
  17. Socket 套接字原理详解
  18. 一次弄懂Event Loop(彻底解决此类面试问题)
  19. 使用Python,OpenCV制作不同风格的素描图(正常,漫画,写实风格)
  20. 电脑市场装机版Ghost XP SP2 v2.0 [修正版]

热门文章

  1. 从机器翻译到阅读理解,一文盘点PaddlePaddle官方九大NLP模型
  2. 一只初学者,如何登顶野生动物识别挑战赛?| 附代码
  3. 怎样构建深度学习模型?六步走,时刻小心过拟合 | 入门指南
  4. 谁说导航一定要用地图?谷歌DeepMind的强化学习模型靠街景认路
  5. 租房新体验:AI机器人中介带你看房
  6. 使用zabbix监控esxi
  7. 秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)...
  8. 运维管理成中小企业“心头大患” 飞塔“安接入”一步解决
  9. SQL Server 2008 Datetime Cast 成 Date 类型可以使用索引(转载)
  10. U盘加载硬盘控制卡驱动安装Windows 2003 指南