IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL5.0.15创建表(MyISAM) -> 正文阅读

[大数据]MySQL5.0.15创建表(MyISAM)

一、简述

mysql> show engines;
+------------+---------+------------------------------------------------------------------------+
| Engine     | Support | Comment                                                                |
+------------+---------+------------------------------------------------------------------------+
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance                 |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables              |
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys             |
| BerkeleyDB | NO      | Supports transactions and page-level locking                           |
| BLACKHOLE  | NO      | /dev/null storage engine (anything you write to it disappears)         |
| EXAMPLE    | NO      | Example storage engine                                                 |
| ARCHIVE    | NO      | Archive storage engine                                                 |
| CSV        | NO      | CSV storage engine                                                     |
| ndbcluster | NO      | Clustered, fault-tolerant, memory-based tables                         |
| FEDERATED  | NO      | Federated MySQL storage engine                                         |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                                  |
| binlog     | YES     | This is a meta storage engine to represent the binlog in a transaction |
| ISAM       | NO      | Obsolete storage engine                                                |
+------------+---------+------------------------------------------------------------------------+
13 rows in set (0.00 sec)

数据库5.0.15默认存储引擎是MyISAM,所以本文围绕MyISAM存储建表。
数据库将创建 .frm 文件表示表的结构。
MyISAM存储引擎每张表分为两个文件:

  • .MYD 表数据文件
  • .MYI 索引文件

二、语法

     CREATE [TEMPORARY] TABLE [IF NOT EXISTS] TBL_NAME
         [(CREATE_DEFINITION,...)]
         [TABLE_OPTIONS] [SELECT_STATEMENT]

Or:

     CREATE [TEMPORARY] TABLE [IF NOT EXISTS] TBL_NAME
         [(] LIKE OLD_TBL_NAME [)];

     CREATE_DEFINITION:
         COLUMN_DEFINITION
       | [CONSTRAINT [SYMBOL]] PRIMARY KEY [INDEX_TYPE] (INDEX_COL_NAME,...)
       | KEY [INDEX_NAME] [INDEX_TYPE] (INDEX_COL_NAME,...)
       | INDEX [INDEX_NAME] [INDEX_TYPE] (INDEX_COL_NAME,...)
       | [CONSTRAINT [SYMBOL]] UNIQUE [INDEX]
             [INDEX_NAME] [INDEX_TYPE] (INDEX_COL_NAME,...)
       | [FULLTEXT|SPATIAL] [INDEX] [INDEX_NAME] (INDEX_COL_NAME,...)
       | [CONSTRAINT [SYMBOL]] FOREIGN KEY
             [INDEX_NAME] (INDEX_COL_NAME,...) [REFERENCE_DEFINITION]
       | CHECK (EXPR)

     COLUMN_DEFINITION:
         COL_NAME TYPE [NOT NULL | NULL] [DEFAULT DEFAULT_VALUE]
             [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
             [COMMENT 'STRING'] [REFERENCE_DEFINITION]

     TYPE:
         TINYINT[(LENGTH)] [UNSIGNED] [ZEROFILL]
       | SMALLINT[(LENGTH)] [UNSIGNED] [ZEROFILL]
       | MEDIUMINT[(LENGTH)] [UNSIGNED] [ZEROFILL]
       | INT[(LENGTH)] [UNSIGNED] [ZEROFILL]
       | INTEGER[(LENGTH)] [UNSIGNED] [ZEROFILL]
       | BIGINT[(LENGTH)] [UNSIGNED] [ZEROFILL]
       | REAL[(LENGTH,DECIMALS)] [UNSIGNED] [ZEROFILL]
       | DOUBLE[(LENGTH,DECIMALS)] [UNSIGNED] [ZEROFILL]
       | FLOAT[(LENGTH,DECIMALS)] [UNSIGNED] [ZEROFILL]
       | DECIMAL(LENGTH,DECIMALS) [UNSIGNED] [ZEROFILL]
       | NUMERIC(LENGTH,DECIMALS) [UNSIGNED] [ZEROFILL]
       | DATE
       | TIME
       | TIMESTAMP
       | DATETIME
       | CHAR(LENGTH) [BINARY | ASCII | UNICODE]
       | VARCHAR(LENGTH) [BINARY]
       | TINYBLOB
       | BLOB
       | MEDIUMBLOB
       | LONGBLOB
       | TINYTEXT [BINARY]
       | TEXT [BINARY]
       | MEDIUMTEXT [BINARY]
       | LONGTEXT [BINARY]
       | ENUM(VALUE1,VALUE2,VALUE3,...)
       | SET(VALUE1,VALUE2,VALUE3,...)
       | SPATIAL_TYPE

     INDEX_COL_NAME:
         COL_NAME [(LENGTH)] [ASC | DESC]

     REFERENCE_DEFINITION:
         REFERENCES TBL_NAME [(INDEX_COL_NAME,...)]
                    [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
                    [ON DELETE REFERENCE_OPTION]
                    [ON UPDATE REFERENCE_OPTION]

     REFERENCE_OPTION:
         RESTRICT | CASCADE | SET NULL | NO ACTION

     TABLE_OPTIONS: TABLE_OPTION [TABLE_OPTION] ...

     TABLE_OPTION:
         {ENGINE|TYPE} = ENGINE_NAME
       | AUTO_INCREMENT = VALUE
       | AVG_ROW_LENGTH = VALUE
       | [DEFAULT] CHARACTER SET CHARSET_NAME [COLLATE COLLATION_NAME]
       | CHECKSUM = {0 | 1}
       | COMMENT = 'STRING'
       | CONNECTION = 'CONNECT_STRING'
       | MAX_ROWS = VALUE
       | MIN_ROWS = VALUE
       | PACK_KEYS = {0 | 1 | DEFAULT}
       | PASSWORD = 'STRING'
       | DELAY_KEY_WRITE = {0 | 1}
       | ROW_FORMAT = {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
       | RAID_TYPE = { 1 | STRIPED | RAID0 }
             RAID_CHUNKS = VALUE
             RAID_CHUNKSIZE = VALUE
       | UNION = (TBL_NAME[,TBL_NAME]...)
       | INSERT_METHOD = { NO | FIRST | LAST }
       | DATA DIRECTORY = 'ABSOLUTE PATH TO DIRECTORY'
       | INDEX DIRECTORY = 'ABSOLUTE PATH TO DIRECTORY'

     SELECT_STATEMENT:
         [IGNORE | REPLACE] [AS] SELECT ...   (SOME LEGAL SELECT STATEMENT)

三、简单操作

3.1 创建表

  • 首先当前用户有创建表的权限
  • 创建的表在当前数据库中
  • 如果重复创建,将报错

3.1.1 直接创建

mysql> create table t1(name varchar(30), age int);
Query OK, 0 rows affected (0.01 sec)

可以看到数据库目录下多了三个文件

$ cd /usr/local/mysql5.0.15/var/test
$ ls t1*
t1.MYD  t1.MYI  t1.frm

重复创建,不成功

mysql> create table t1(version varchar(25));
ERROR 1050 (42S01): Table 't1' already exists

为了防止报错,可以增加判断条件

mysql> create table if not exists t1(version varchar(25));
Query OK, 0 rows affected, 1 warning (0.00 sec)

#表结构未修改
mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` varchar(30) default NULL,
  `age` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

3.1.2 使用like创建表

> create table t2 like t1;
Query OK, 0 rows affected (0.01 sec)

mysql> show create table t2 \G
*************************** 1. row ***************************
       Table: t2
Create Table: CREATE TABLE `t2` (
  `name` varchar(30) default NULL,
  `age` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

能看到t2和t1的结构完全相同

3.1.3 使用select创建表

先在t1表中插入一些数据

mysql>insert into t1 (name, age) values ('zhangsan', 10),('lisi',20), ('wangwu', 18);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> create table t3 select name from t1;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show create table t3 \G
*************************** 1. row ***************************
       Table: t3
Create Table: CREATE TABLE `t3` (
  `name` varchar(30) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql> select * from t3;
+----------+
| name     |
+----------+
| zhangsan |
| lisi     |
| wangwu   |
+----------+
3 rows in set (0.00 sec)

能看出,通过select创建表,表结构就是select选择的列,并且将选择的数据同时也插入到新表中
当使用if not exists时,即使表已经存在,数据也会插入
前提时存在的表结构和select的列对应

mysql> select * from t3;
Empty set (0.00 sec)

#已经存在的表结构和select的后的结果列数不一致
mysql> create table if not exists t3 select * from t1;
ERROR 1136 (21S01): Column count doesn't match value count at row 1

#表虽然已经存在,依然会将数据入进去
mysql> create table if not exists t3 select name from t1;
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from t3;
+----------+
| name     |
+----------+
| zhangsan |
| lisi     |
| wangwu   |
+----------+
3 rows in set (0.00 sec)

3.1.4 使用dbname.tablename创建表

  • 默认创建的表都在当前数据库中
  • MySQL5.0开始可以通过DB_NAME.TBL_NAME在特定的数据库下创建表
# 查看当前系统中的所有数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)

#使用mydb进行查看, 其中只有test表
mysql> use mydb
Database changed
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| test           |
+----------------+
1 row in set (0.00 sec)

#使用test
mysql> use test
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
| t2             |
| t3             |
| test           |
+----------------+
4 rows in set (0.00 sec)

#创建表t4
mysql> create table mydb.t4(id int, name varchar(24), age int);
Query OK, 0 rows affected (0.00 sec)

#本数据库中没有t4
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
| t2             |
| t3             |
| test           |
+----------------+
4 rows in set (0.00 sec)

# 进入mydb, 可看到表t4成功建立在数据库mydb中
mysql> use mydb
Database changed
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| t4             |
| test           |
+----------------+
2 rows in set (0.00 sec)

mysql> show create table t4 \G
*************************** 1. row ***************************
       Table: t4
Create Table: CREATE TABLE `t4` (
  `id` int(11) default NULL,
  `name` varchar(24) default NULL,
  `age` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

3.2 修改表结构

3.2.1 增加列

mysql>  show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` varchar(30) default NULL,
  `age` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql> alter table t1 add column id int;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` varchar(30) default NULL,
  `age` int(11) default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

3.2.2 删除列

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` varchar(30) default NULL,
  `age` int(11) default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql> alter table t1 drop column age;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` varchar(30) default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

3.2.3 修改列类型

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` varchar(30) default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql> alter table t1 modify column name int;
Query OK, 3 rows affected, 3 warnings (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 3

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` int(11) default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

3.2.4 修改字符集

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` int(11) default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql> alter table t1 change name name char(30) character set utf8;
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` char(30) character set utf8 default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql>

3.2.5 修改表引擎

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` char(30) character set utf8 default NULL,
  `id` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql> alter table t1 engine=innodb;
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show create table t1 \G
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `name` char(30) character set utf8 default NULL,
  `id` int(11) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.01 sec)

mysql>

3.2 修改表数据

mysql> select * from t1;
+------+------+
| name | id   |
+------+------+
| 0    | NULL |
| 0    | NULL |
| 0    | NULL |
+------+------+
3 rows in set (0.00 sec)

mysql> update  t1 set name = 'zhangsan';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> select * from t1;
+----------+------+
| name     | id   |
+----------+------+
| zhangsan | NULL |
| zhangsan | NULL |
| zhangsan | NULL |
+----------+------+
3 rows in set (0.00 sec)

3.3 清空表数据

mysql> truncate table t1;
Query OK, 3 rows affected (0.01 sec)

mysql> select * from t1;
Empty set (0.00 sec)

或者使用delete

mysql> insert into t1 values ('lisi', 3),('wangwu', 5), ('zhangsan', 8);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from t1;
+----------+------+
| name     | id   |
+----------+------+
| lisi     |    3 |
| wangwu   |    5 |
| zhangsan |    8 |
+----------+------+
3 rows in set (0.00 sec)

mysql> delete from t1;
Query OK, 3 rows affected (0.01 sec)

mysql> select * from t1;
Empty set (0.00 sec)

3.4 删除表

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
| t2             |
| t3             |
| test           |
+----------------+
4 rows in set (0.00 sec)

mysql> drop table t1;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t2             |
| t3             |
| test           |
+----------------+
3 rows in set (0.00 sec)

四、实现

client请求创建表

mysql> create table t(id int, name varchar(20), age int);

server接收client的请求,进行解析,解析后发现是创建表,如下为调用栈

#0  mysql_create_table (thd=0x9f8e870, db=0x7ffff001b610 "test", table_name=0x7ffff0002d38 "t", create_info=0x9f8f240,
    fields=..., keys=..., internal_tmp_table=false, select_field_count=0) at sql_table.cc:1494
#1  0x000000000822409d in mysql_execute_command (thd=0x9f8e870) at sql_parse.cc:2878
#2  0x0000000008228d87 in mysql_parse (thd=0x9f8e870, inBuf=<optimized out>, length=<optimized out>)
    at sql_parse.cc:5536
#3  0x000000000822992c in dispatch_command (command=<optimized out>, thd=0x9f8e870,
    packet=0x9fc37c1 "create table t(id int, name varchar(20), age int)", packet_length=50) at sql_parse.cc:1697
#4  0x000000000822a9d1 in do_command (thd=0x9f8e870) at sql_parse.cc:1498
#5  0x000000000822b51c in handle_one_connection (arg=<optimized out>) at sql_parse.cc:1143
#6  0x00007fffff77f609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7  0x00007fffff302293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

关键函数为mysql_create_table

bool mysql_create_table(THD *thd,const char *db, const char *table_name,
                        HA_CREATE_INFO *create_info,
                        List<create_field> &fields,
                        List<Key> &keys,bool internal_tmp_table,
                        uint select_field_count)
{
  ...

	//检查表引擎
  if (check_engine(thd, table_name, &create_info->db_type))
    DBUG_RETURN(TRUE);
 	
 	...
 	
  //是否表名大小写敏感
  alias= table_case_name(create_info, table_name);

//获取存储引擎对象
  file=get_new_handler((TABLE*) 0, create_info->db_type);

 ...

  //如果建表语句中未指定字符集,则使用数据库的字符集
  if (!create_info->default_table_charset)
  {
    ...
    build_table_path(path, sizeof(path), db, MY_DB_OPT_FILE, "");
    load_db_opt(thd, path, &db_info);
    create_info->default_table_charset= db_info.default_table_charset;
  }
 ...

 //准备工作
  if (mysql_prepare_table(thd, create_info, &fields,
			  &keys, internal_tmp_table, &db_options, file,
			  &key_info_buffer, &key_count,
			  select_field_count))
    DBUG_RETURN(TRUE);


	//构建表文件路径
    ...
    build_table_path(path, sizeof(path), db, alias, reg_ext);

	//检查表文件是否存在(既检查表是否存在)
    ...
    if (!access(path,F_OK))
    {
      //表存在, 但是建表语句中有if not exists, 则只是告警,正常退出
      if (create_info->options & HA_LEX_CREATE_IF_NOT_EXISTS)
        goto warn;
        //否则,出错
      my_error(ER_TABLE_EXISTS_ERROR,MYF(0),table_name);
      goto end;
    }
  }

  ...
 
   //真正开始创建表文件
  if (rea_create_table(thd, path, db, table_name,
                       create_info, fields, key_count,
		       key_info_buffer))
    goto end;
  ...

 //如果开启binlog, 则写入binlog
  if (!internal_tmp_table && mysql_bin_log.is_open())
  {
    thd->clear_error();
    Query_log_event qinfo(thd, thd->query, thd->query_length, FALSE, FALSE);
    mysql_bin_log.write(&qinfo);
  }
  error= FALSE;

end:
  ...
  thd->proc_info="After create";
  DBUG_RETURN(error);

warn:
  error= FALSE;
 ...
  create_info->table_existed= 1;		// Mark that table existed
  goto end;
}

这里主要关注函数rea_create_table

Thread 11 "mysqld" hit Breakpoint 2, create_frm (thd=0x9f8e870, name=0x7ffffc3fdda0 "./test/t.frm", db=0x7ffff001b600 "test",
    table=0x7ffff0002d38 "t", reclength=30, fileinfo=0x7ffffc3fd5a0 "", create_info=0x9f8f240, keys=0) at table.cc:1396
1396    {
(gdb) bt
#0  create_frm (thd=0x9f8e870, name=0x7ffffc3fdda0 "./test/t.frm", db=0x7ffff001b600 "test", table=0x7ffff0002d38 "t", reclength=30,
    fileinfo=0x7ffffc3fd5a0 "", create_info=0x9f8f240, keys=0) at table.cc:1396
#1  0x00000000082a6991 in mysql_create_frm (thd=0x9f8e870, file_name=0x7ffffc3fdda0 "./test/t.frm", db=0x7ffff001b600 "test",
    table=0x7ffff0002d38 "t", create_info=0x9f8f240, create_fields=..., keys=0, key_info=0x7ffff0003360, db_file=0x7ffff0003360)
    at unireg.cc:127
#2  0x00000000082a7c02 in rea_create_table (thd=thd@entry=0x9f8e870, file_name=file_name@entry=0x7ffffc3fdda0 "./test/t.frm",
    db=db@entry=0x7ffff001b600 "test", table=table@entry=0x7ffff0002d38 "t", create_info=create_info@entry=0x9f8f240,
    create_fields=..., keys=0, key_info=0x7ffff0003360) at unireg.cc:261
#3  0x00000000082db1ec in mysql_create_table (thd=thd@entry=0x9f8e870, db=0x7ffff001b600 "test", table_name=0x7ffff0002d38 "t",
    create_info=create_info@entry=0x9f8f240, fields=..., keys=..., internal_tmp_table=false, select_field_count=0)
    at sql_table.cc:1618
#4  0x000000000822409d in mysql_execute_command (thd=thd@entry=0x9f8e870) at sql_parse.cc:2878
#5  0x0000000008228d87 in mysql_parse (thd=thd@entry=0x9f8e870, inBuf=<optimized out>, length=<optimized out>) at sql_parse.cc:5536
#6  0x000000000822992c in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x9f8e870,
    packet=packet@entry=0x9fc37c1 "create table t(id int, name varchar(20), age int)", packet_length=packet_length@entry=50)
    at sql_parse.cc:1697
#7  0x000000000822a9d1 in do_command (thd=0x9f8e870) at sql_parse.cc:1498
#8  0x000000000822b51c in handle_one_connection (arg=<optimized out>) at sql_parse.cc:1143
#9  0x00007fffff77f609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007fffff302293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:36:52  更:2021-09-04 17:39:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:44:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码