mysql 分区

分区的作用是将一个表或者索引物分解为更小,更可管理的部分, 如果表中存在主键或者是唯一索引时,分区列必须是唯一索引的一部分
比如:
查询数据系统只会获取指定的分区.
数据量会变小
易于管理

查看是否启用分区:

mysql> show plugins;
Name: partition

分区的类型:
range分区: 行数据基于属于一个给定连续区间的列值放入分区, 必须明确的指定一个给定的列值和列值集
list分区:和range分区类似, 只是list分区面向的是离散的值, 必须明确的指定一个给定的列值和列值集
hash分区: 根据用户自定义的表达式返回的值进行分区, 返回的值不能为负数, 目的是将数据均匀的分布在预先定义的分区中
key分区:根据mysql数据库提供的哈希函数来进行分区

查看分区信息: select * from information_schema.PARTITIONS where table_name='sales'
查看sql查询的分区信息:explain partitions select * from mysqltest.sales where date>='2016-01-01' and date<'2017-01-01';
删除分区: alter table sales drop partiion p2018;

Drupal 8 Entity常用

获取EntityManager
$entity_manager = \Drupal::entityTypeManager();

根据Property属性查询
$properties = array(
   'deleted' => TRUE,
   'include_deleted' => TRUE,
);
$fields = $entity_manager->getStorage('field_config')->loadByProperties($properties);

获取所有已定义的EntityType
$info = $entity_manager->getDefinitions();


获取一个Entity:

$entity = \Drupal::entityTypeManager()->getStorage('MyEntityType')->load(9);
dpm($entity);

查询其它条件

$entityQuery = \Drupal::entityQuery('project_list')
      ->condition('field_short_name', $short_name)->execute();

创建Entity

$EntityStorage = \Drupal::entityTypeManager()->getStorage('project_list');
$Entity = $EntityStorage->create(array('type' => 'project_list'));
$Entity->title = $title;
$Entity->field_short_name = $short_name;
$Entity->field_project_link = $link;

修改Entity 数据

$entity = \Drupal::entityTypeManager()->getStorage('MyEntityType')->load(9);
$entity->myfield = 1;
$entity->save();