https://dev.mysql.com/doc/refman/5.7/en/storage-engines.html
show engines; 查看當前支持的存儲引擎
(root@localhost) [test]>show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
存儲引擎配置
1、請禁用除了innodb以外的其它存儲引擎。
5.7中不能skip myisam和skip memory。因爲他們有用在系統表中。5.7中我們能配的就是禁用以下三個:
[mysqld]
skip-federated
skip-archive
skip-blackhole
(root@localhost) [(none)]>show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | NO | /dev/null storage engine (anything you write to it disappears) | NULL | NULL | NULL |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | NO | Archive storage engine | NULL | NULL | NULL |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
2、show table status 檢查業務表的引擎,若有用到其它引擎,請換爲innodb。
alter table test1 engine = innodb;
注意,數據量很大的話就要鎖表。
官方存儲引擎和第三方存儲引擎
官方:
- MyISAM
- InnoDB
- Memory
- federated
- CSV
- Archive
第三方:
- TokuDB
- InfoBright
- Spider
(其實這些東西都不推薦去學習,會有很多問題的)
是否支持事務?
支持事務:FalconI、InnoDB、TokuDB、WiredTiger
不支持事務:Aria、BlitzDB、MyISAM、InfiniDB
選擇哪一個?
儘可能地使用Innodb,官方的其它引擎已經不再維護!而其它第三方存儲引擎說性能有多強,都是在特定的環境下測試的。我們普遍來講innodb纔是最可靠的。
只在特定場景下使用第三方的存儲引擎:
- TokuDB:插入密集型
- InfoBright:OLAP場景
這些三方引擎都有問題,TokuDB插入的確很快,查詢性能不能接受,像range查詢起來慢。只是快了某一方面。
InfoBright只對某些類型查詢,如SUM快。但是大量的JOIN根本跑不出結果,JOIN列是無序的, 沒有二級存。
Spider分佈式引擎也有很多坑。
我們只需要把精力都放到innodb上,不要浪費時間到其它引擎上,規避其它引擎的坑。抓住最有價值的innodb!
mysql系統表的引擎
mysql8之前的版本系統表有些是myisam、csv有些是innodb;
(root@localhost) [(none)]>use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
(root@localhost) [mysql]>show table status;
+---------------------------+--------+---------+------------+------+----------------+-------------+--------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+--------------------+-----------------------------------------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+---------------------------+--------+---------+------------+------+----------------+-------------+--------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+--------------------+-----------------------------------------+
| columns_priv | MyISAM | 10 | Fixed | 0 | 0 | 0 | 241505530017742847 | 4096 | 0 | NULL | 2021-04-18 10:36:36 | 2021-04-18 10:36:36 | NULL | utf8_bin | NULL | | Column privileges |
| db | MyISAM | 10 | Fixed | 4 | 488 | 1952 | 137359788634800127 | 5120 | 0 | NULL | 2021-04-18 10:36:36 | 2021-04-18 18:50:08 | NULL | utf8_bin | NULL | | Database privileges |
| engine_cost | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | |
| event | MyISAM | 10 | Dynamic | 0 | 0 | 0 | 281474976710655 | 2048 | 0 | NULL | 2021-04-18 10:36:37 | 2021-04-18 10:36:37 | NULL | utf8_general_ci | NULL | | Events |
| func | MyISAM | 10 | Fixed | 0 | 0 | 0 | 162974011515469823 | 1024 | 0 | NULL | 2021-04-18 10:36:36 | 2021-04-18 10:36:36 | NULL | utf8_bin | NULL | | User defined functions |
| general_log | CSV | 10 | Dynamic | 2 | 0 | 0 | 0 | 0 | 0 | NULL | NULL | NULL | NULL | utf8_general_ci | NULL | | General log |
| gtid_executed | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | latin1_swedish_ci | NULL | | |
| help_category | InnoDB | 10 | Dynamic | 48 | 341 | 16384 | 0 | 16384 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | help categories |
| help_keyword | InnoDB | 10 | Dynamic | 970 | 118 | 114688 | 0 | 114688 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | help keywords |
| help_relation | InnoDB | 10 | Dynamic | 2221 | 44 | 98304 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | keyword-topic relation |
| help_topic | InnoDB | 10 | Dynamic | 647 | 2456 | 1589248 | 0 | 98304 | 4194304 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | help topics |
| innodb_index_stats | InnoDB | 10 | Dynamic | 7 | 2340 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_bin | NULL | stats_persistent=0 | |
| innodb_table_stats | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_bin | NULL | stats_persistent=0 | |
| ndb_binlog_index | MyISAM | 10 | Dynamic | 0 | 0 | 0 | 281474976710655 | 1024 | 0 | NULL | 2021-04-18 10:36:37 | 2021-04-18 10:36:37 | NULL | latin1_swedish_ci | NULL | | |
| plugin | InnoDB | 10 | Dynamic | 1 | 16384 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | MySQL plugins |
| proc | MyISAM | 10 | Dynamic | 48 | 6277 | 301304 | 281474976710655 | 4096 | 0 | NULL | 2021-04-18 10:36:37 | 2021-04-18 10:36:37 | NULL | utf8_general_ci | NULL | | Stored Procedures |
| procs_priv | MyISAM | 10 | Fixed | 0 | 0 | 0 | 266275327968280575 | 4096 | 0 | NULL | 2021-04-18 10:36:37 | 2021-04-18 10:36:37 | NULL | utf8_bin | NULL | | Procedure privileges |
| proxies_priv | MyISAM | 10 | Fixed | 1 | 837 | 837 | 235594555506819071 | 9216 | 0 | NULL | 2021-04-18 10:36:37 | 2021-04-18 10:36:37 | NULL | utf8_bin | NULL | | User proxy privileges |
| server_cost | InnoDB | 10 | Dynamic | 6 | 2730 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | |
| servers | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | MySQL Foreign Servers table |
| slave_master_info | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Master Information |
| slave_relay_log_info | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Relay Log Information |
| slave_worker_info | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Worker Information |
| slow_log | CSV | 10 | Dynamic | 2 | 0 | 0 | 0 | 0 | 0 | NULL | NULL | NULL | NULL | utf8_general_ci | NULL | | Slow log |
| tables_priv | MyISAM | 10 | Fixed | 2 | 947 | 1894 | 266556802944991231 | 9216 | 0 | NULL | 2021-04-18 10:36:36 | 2021-04-18 10:36:37 | NULL | utf8_bin | NULL | | Table privileges |
| time_zone | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | 1 | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Time zones |
| time_zone_leap_second | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Leap seconds information for time zones |
| time_zone_name | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Time zone names |
| time_zone_transition | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Time zone transitions |
| time_zone_transition_type | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | NULL | 2021-04-18 10:37:50 | NULL | NULL | utf8_general_ci | NULL | stats_persistent=0 | Time zone transition types |
| user | MyISAM | 10 | Dynamic | 5 | 129 | 648 | 281474976710655 | 4096 | 0 | NULL | 2021-04-18 10:36:36 | 2021-05-03 10:59:08 | NULL | utf8_bin | NULL | | Users and global privileges |
+---------------------------+--------+---------+------------+------+----------------+-------------+--------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+--------------------+-----------------------------------------+
在mysql8.0後系統表把原來的myisam統一爲innodb了,當然general_log 和slow_log 還是CSV。如下:
(root@localhost) [(none)]>use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
(root@localhost) [mysql]>show table status;
+------------------------------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+---------------------------------------+------------------------------------------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------------------------------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+---------------------------------------+------------------------------------------+
| columns_priv | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Column privileges |
| component | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | 1 | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC | Components |
| db | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 16384 | 4194304 | NULL | 2021-05-05 16:19:55 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Database privileges |
| default_roles | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Default roles |
| engine_cost | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | |
| func | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | User defined functions |
| general_log | CSV | 10 | Dynamic | 2 | 0 | 0 | 0 | 0 | 0 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | | General log |
| global_grants | InnoDB | 10 | Dynamic | 67 | 978 | 65536 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Extended global grants |
| gtid_executed | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8mb4_0900_ai_ci | NULL | row_format=DYNAMIC | |
| help_category | InnoDB | 10 | Dynamic | 53 | 309 | 16384 | 0 | 16384 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | help categories |
| help_keyword | InnoDB | 10 | Dynamic | 868 | 151 | 131072 | 0 | 131072 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | help keywords |
| help_relation | InnoDB | 10 | Dynamic | 1706 | 57 | 98304 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | keyword-topic relation |
| help_topic | InnoDB | 10 | Dynamic | 574 | 2768 | 1589248 | 0 | 98304 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | help topics |
| innodb_index_stats | InnoDB | 10 | Dynamic | 10 | 1638 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 08:19:51 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | |
| innodb_table_stats | InnoDB | 10 | Dynamic | 3 | 5461 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 08:19:51 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | |
| password_history | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Password history for user accounts |
| plugin | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | MySQL plugins |
| procs_priv | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 16384 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Procedure privileges |
| proxies_priv | InnoDB | 10 | Dynamic | 1 | 16384 | 16384 | 0 | 16384 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | User proxy privileges |
| replication_asynchronous_connection_failover | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 16384 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | The source configuration details |
| replication_asynchronous_connection_failover_managed | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | The managed source configuration details |
| role_edges | InnoDB | 10 | Dynamic | 1 | 16384 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Role hierarchy and role grants |
| server_cost | InnoDB | 10 | Dynamic | 6 | 2730 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | |
| servers | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | MySQL Foreign Servers table |
| slave_master_info | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Master Information |
| slave_relay_log_info | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Relay Log Information |
| slave_worker_info | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Worker Information |
| slow_log | CSV | 10 | Dynamic | 2 | 0 | 0 | 0 | 0 | 0 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | | Slow log |
| tables_priv | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 16384 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Table privileges |
| time_zone | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | 1 | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Time zones |
| time_zone_leap_second | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Leap seconds information for time zones |
| time_zone_name | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Time zone names |
| time_zone_transition | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Time zone transitions |
| time_zone_transition_type | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_general_ci | NULL | row_format=DYNAMIC stats_persistent=0 | Time zone transition types |
| user | InnoDB | 10 | Dynamic | 7 | 2340 | 16384 | 0 | 0 | 4194304 | NULL | 2021-05-05 16:19:56 | NULL | NULL | utf8_bin | NULL | row_format=DYNAMIC stats_persistent=0 | Users and global privileges |
+------------------------------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+---------------------------------------+------------------------------------------+
35 rows in set (0.04 sec)
(root@localhost) [mysql]>
這是一個非常大的改進,未來可能支持ddl的回滾。數據定義的回滾。
mysql8 已經實現ddl的原子性了。
一些引擎的介紹信息
MyISAM
- mysql5.1之前的默認引擎
- 表鎖設計
- 堆表數據結構
- 支持數據靜態壓縮
- 不支持事務
- 數據容易丟失
- 索引容易損壞
- 優點:1、數據文件可以直接copy到另一臺服務器使用 2、count(*) 快
myisam是非常糟糕的;有人說myisam讀取快,是不成立的。現在的innodb在讀方面絕對比myisam快。
我們現在count(*) 都是放緩存的。通過CAS進行計數,通過值來訪問。
Memory
- 全內存存儲
- 數據庫重啓後數據丟失
- 支持哈希索引
- 不支持事務
有人多人喜歡使用memory引擎,因爲放到內存中快;其實少量數據放在innodb上它也是放在內存的,只是說數據量大了就會放到磁盤;
而且memory併發並不好,他也是表鎖的。
當然memory會用在臨時表上,分組時會用到;memory的用處是在數據庫內部,而不是對用戶。
想要放到內存中爲什麼不用redis?redis肯定性能更好啊,用mysql還會多一層sql解析。
CSV
csv格式是以文本的方式保存數據的。
slow_log表就是CSV引擎的,可以直接查看slow_log.CSV:
[root@localhost mysql]# cat slow_log.CSV
"2021-05-16 19:03:36.833839","root[root] @ localhost []","00:00:00.000385","00:00:00.000000",1,0,"",0,0,10,"select @@version_comment limit 1",2
"2021-05-16 19:03:36.882537","root[root] @ localhost []","00:00:00.000069","00:00:00.000000",1,0,"",0,0,10,"select USER()",2
"2021-05-16 19:03:54.704466","root[root] @ localhost []","00:00:00.000074","00:00:00.000000",1,0,"",0,0,10,"SELECT DATABASE()",2
"2021-05-16 19:03:54.705472","root[root] @ localhost []","00:00:00.000148","00:00:00.000000",1,0,"mysql",0,0,10,"Init DB",2
"2021-05-16 19:03:54.709006","root[root] @ localhost []","00:00:00.000836","00:00:00.000120",5,5,"mysql",0,0,10,"show databases",2
"2021-05-16 19:03:54.709913","root[root] @ localhost []","00:00:00.000491","00:00:00.000093",31,31,"mysql",0,0,10,"show tables",2
以逗號分割,那如果字段中包含逗號是不是就有問題了?沒有太大的必要去使用它,雖然有些人說使用csv可以直接將txt導入數據庫。但是這有必要嗎。
(root@localhost) [(none)]>show create table mysql.slow_log \g
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| slow_log | CREATE TABLE `slow_log` (
`start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`user_host` mediumtext NOT NULL,
`query_time` time(6) NOT NULL,
`lock_time` time(6) NOT NULL,
`rows_sent` int(11) NOT NULL,
`rows_examined` int(11) NOT NULL,
`db` varchar(512) NOT NULL,
`last_insert_id` int(11) NOT NULL,
`insert_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`sql_text` mediumblob NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log' |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.07 sec)
Federated
非常類似於oracle的dblink,只支持mysql遠程訪問mysql。有很多問題啊,不要用啊;
拓展
1、innodb不支持分佈式事務。
2、生產環境一定要開雙1,毫無疑問! 當然mysql5.5時雙1性能會慢10倍,這個bug 5.6時已經修正。
3、alter table test1 engine = innodb;在修改引擎的過程中表會被鎖住。
4、開啓slow log 會有性能影響嗎?不會,除非系統有很多的慢查詢。