返回的数据类型为slice类型,slice是引用类型,无论是作为函数入参还是返回值都不会产生值拷贝,拷贝的是引用本身,所以可以放心使用。
如果数据存在每次还都获取锁,这会降低程序的效率,而且大部分时间是有值的。
CREATE TABLE `star_info` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name_zh` varchar(50) NOT NULL DEFAULT '' COMMENT '中文名', `name_en` varchar(50) NOT NULL DEFAULT '' COMMENT '英文名', `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像', `birthday` varchar(50) NOT NULL DEFAULT '' COMMENT '出生日期', `height` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '身高,单位cm', `weight` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '体重,单位g', `club` varchar(50) NOT NULL DEFAULT '' COMMENT '俱乐部', `jersy` varchar(50) NOT NULL DEFAULT '' COMMENT '球衣号码以及主打位置', `country` varchar(50) NOT NULL DEFAULT '' COMMENT '国籍', `birthaddress` varchar(255) NOT NULL DEFAULT '' COMMENT '出生地', `feature` varchar(255) NOT NULL DEFAULT '' COMMENT '个人特点', `moreinfo` text COMMENT '更多介绍', `sys_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态,默认值 0 正常,1 删除', `sys_created` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间', `sys_updated` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用这个
还可以更丰富一些吧,不完善
框架应该是以协程方式来处理客户端请求的,在高并发下,同时可能会有好几个客户端请求,就会出现第一个人进来创建db链接还没完成,第二个人同时在另一个协程中创建db链接,这样就会出现多个人重复创建db链接,如果并发行量大的话(10000),数据库就可能会挂点
单例模式不会降低并发度,单例可以实现db链接的复用,因为创建db链接及耗时,又占用系统及数据库资源,而且数据库链接数是有限的,在高并发量下,每个请求都去创建db链接,可能会导致数据库挂掉