NDB 字段相关 mysql7.5.4
来源:互联网 发布:10月非农数据预测 编辑:程序博客网 时间:2024/05/29 06:44
字段:
类
通过NdbDictionary::Column 提供接口界面
class NdbDictionary::Column{NdbColumnImpl * impl;};
- NdbColumnImpl继承NdbDictionary::Column,基本只提供字段属性的set/get;
- 通过NdbColumnImpl实现底层操作;
- 同时column不提供对record中字段数据进行操作的操作接口。
创建
1. 在存储引擎handler接口create中调用create_ndb_column
static intcreate_ndb_column(THD *thd, NDBCOL &col, Field *field, HA_CREATE_INFO *create_info, column_format_type default_format= COLUMN_FORMAT_TYPE_DEFAULT);
根据field,create_info设置col的各成员变量,如m_type,m_autoIncrement…;
note: 此时不设置字段大小 m_attrSize
2. 之后调用 addColumn 把字段加入表中
int NdbDictionary::Table::addColumn(const Column & c){ NdbColumnImpl* col = new NdbColumnImpl; if (col == NULL) { errno = ENOMEM; return -1; } (* col) = NdbColumnImpl::getImpl(c); if (m_impl.m_columns.push_back(col)) // { return -1; } if (m_impl.buildColumnHash()) //hash { return -1; } col->m_column_no = m_impl.m_columns.size() - 1; return 0;}
此时设置column的m_column_no属性,
3. 之后调用createTable在data节点创建表
NdbDictionary::Dictionary::createTable() NdbDictionaryImpl:::createTable() NdbDictInterface::createTable() serializeTableDesc //计算column size sendCreateTable //发送给 data节点 NdbDictInterface::getTable() //从data节点获取表 NdbDictInterface::parseTableInfo // 获取表,字段信息
在serializeTableDesc节点序列化表信息以便网络传输。
note:在其中,通过DictTabInfo::Attribute结构表示字段信息,通过Column填充Attribute,并计算字段attribute 大小(m_attrSize element size)
// check type and compute attribute size and array size if (! tmpAttr.translateExtType()) {
mysql field to ndb column
由于在mysql中的一些field在ndb中不一定存在,所以字段顺序在mysql表和ndb表中可能不同,通过Ndb_table_map来映射mysql中的field与ndb中的column。在构造中通过mysqlTable->field[fieldId]->stored_in_db判断field是否有对应column,建立映射map。
m_map_by_field[fieldId] = colId;
m_map_by_col[colId] = fieldId;
索引
*note:
1. 添加进索引的索引字段不为表中字段,是不同对象。*
0 0
- NDB 字段相关 mysql7.5.4
- MySQL7-外键
- mysql cluster ndb 核心参数介绍(理解 ndb,先从使用开始,也透露出了实现) 脑裂相关
- CentOS7安装mysql7
- NDB规范
- mysql7.x单独安装mysql
- win安装多个mysql7
- mysql字段相关操作
- INNODB 字段相关
- mongostat输出相关字段
- Mysql 时间字段相关
- LVS & MySQL NDB Cluster
- ndb mgm 的配置文件
- NDB存储引擎
- NDB存储引擎
- ndb cluster部署
- Mysql ndb cluster初试
- Mysql NDB 常见问题
- GitBook中文说明
- 知易行难
- 趣谈-不做高频,量化交易获利的概率真的能战胜抛钢蹦吗?
- 培训下属就等于提高自己
- 二进制整数加
- NDB 字段相关 mysql7.5.4
- NoSQL--族谱图
- 传统数据库的瓶颈?
- 斯坦福机器学习网易公开课笔记14
- Valgrind---审视者的利剑
- Oracle--NoSQL
- 纪念 Dennis Ritchie
- Java异常(注意一些区分)
- ACM代码中为什么无穷大采用0x3f3f3f3f