List<String> a = new ArrayList<String>();
List<String> b = new ArrayList<String>();
System.out.prinln(a)
// []
System.out.prinln(b)
// []
必须使用InnoDB存储引擎
支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高
必须使用UTF8字符集
万国码,无需转码,无乱码风险,节省空间(由于移动设备原因最好使用utf8mb4)
grant all privileges on open.* to admin;
flush privileges;//刷新系统权限表
GRANT privileges ON databasename.tablename TO 'username'@'host'
命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明: privilege, databasename, tablename - 同授权部分.
例子: REVOKE SELECT ON *.* FROM 'pig'@'%';
我们都知道每个InnoDB存储引擎表都有一个聚簇索引,在有主键的情况下,主键索引就是这个聚簇索引。MySQL 官方文档(14.6.2.1 Clustered and Secondary Indexes)有说明:
如果表没有主键,甚至都没有唯一键索引的话,InnoDB 内部会基于一个包含了 ROW_ID 值的列生成一个隐式的聚簇索引,行都会根据这个 ROW_ID 排序。ROW_ID 是一个6个字节,即48位的单调递增字段。有新数据插入时,就会生成一个新的递增的 ROW_ID。所以,根据 ROW_ID 排序的行,本质上是按照插入顺序排序。
App\Providers\AppServiceProvider
View()->composer('common.header',function ($view){
//common.header 对应Blade模板
$view->with('key', 'value');
});
View()->share('key', 'value');