mysql通过存储过程以及事务批量生成数据
存储过程加上事务能够提高插入效率:
CREATE DEFINER=`root`@`%` PROCEDURE `autoinsert`(IN NUM INT)
BEGIN
DECLARE INIT_NUM INT DEFAULT 0 ;
START TRANSACTION;
WHILE(INIT_NUM < NUM)
DO
insert into `user`(`name`,`city_id`) values(rand_str(10),rand_int(2));
SET INIT_NUM = INIT_NUM+1;
END WHILE;
COMMIT;
END
CREATE TABLE `test` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`forum_id` bigint(20) unsigned NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `test_forum_id_IDX` (`forum_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=750136 DEFAULT CHARSET=utf8mb4
DROP PROCEDURE IF EXISTS test.BatchInsertTest;
delimiter //
CREATE PROCEDURE BatchInsertTest(IN loop_time INT)
BEGIN
DECLARE Var INT;
SET Var = 0;
START TRANSACTION;
WHILE Var < loop_time DO
INSERT INTO `test` ( `forum_id`, `created`) select FLOOR(1 + (RAND() * 1000)),FROM_UNIXTIME(UNIX_TIMESTAMP()-(RAND() * 30 * 86400));
SET Var = Var + 1;
END WHILE;
COMMIT;
END;
//
delimiter ;
CALL BatchInsertTest(10000);
select count(*) from test;
mysql生成固定位数随机字母以及数字
随机数字
CREATE DEFINER=`root`@`%` FUNCTION `rand_int`(counts INTEGER) RETURNS varchar(20) CHARSET utf8
BEGIN
DECLARE sTemp VARCHAR(20);
DECLARE sTempCounts INTEGER;
SET sTemp = CONCAT( ROUND(ROUND(RAND(),counts)*(POW(10,counts))),'');
IF(CHAR_LENGTH(sTemp)<counts) THEN
SET sTempCounts = counts - CHAR_LENGTH(sTemp);
SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),''),sTempCounts));
END IF;
RETURN sTemp;
END
随机字母:
CREATE DEFINER=`root`@`%` FUNCTION `rand_str`(
f_num INT UNSIGNED
) RETURNS varchar(200) CHARSET latin1
BEGIN
DECLARE i INT UNSIGNED DEFAULT 0;
DECLARE v_result VARCHAR(200) DEFAULT '';
DECLARE v_dict VARCHAR(200) DEFAULT '';
SET v_dict = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
SET v_dict = LPAD(v_dict,200,v_dict);
WHILE i < f_num
DO
SET v_result = CONCAT(v_result,SUBSTR(v_dict,CEIL(RAND()*200),1));
SET i = i + 1;
END WHILE;
RETURN v_result;
END
mysql在线修改表结构
MYSQL在使用Online DDL之后,主从复制或多或少还存在问题,可以考虑使用pt-online-schema-change
yarn更换为淘宝镜像
全局设置npm采用淘宝镜像
npm config set registry https://registry.npmmirror.com
安装yarn
npm install yarn -g
多版本切换
npm install n -g
n lts
node -v
查看下载源
yarn config get registry
更换为淘宝源
yarn config set registry https://registry.npmmirror.com
初始化项目
yarn init -y
安装webpack
yarn add webpack
安装webpack到dev
yarn add webpack -D
更新到最新的
yarn upgrade webpack
安装项目里的依赖
yarn install
React学习资料
- React 构建单页应用方法与实例
- React Router 中文文档
- 基于react及antd的demo
- Ant Design of React
- React入坑指南
- 基于 NPM 的大型 React 单页应用探索(多场景多方案)
- dva-cli
- dva-hackernews
- dva-example-react-native
- React 应用框架在蚂蚁金服的实践
- awesome-dva
- dva-knowledgemap
- React + Redux 最佳实践
- 12 步 30 分钟,完成用户管理的 CURD 应用 (react+dva+antd)
- dva-example-user-dashboard
- roadhog
- dva
- create-react-app
- react-webpack-cookbook
解决linux下reactnative之watchman问题
echo 256 | sudo tee -a /proc/sys/fs/inotify/max_user_instances
echo 32768 | sudo tee -a /proc/sys/fs/inotify/max_queued_events
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches
reactnative开发资料
Mysql空间数据相关
跨平台解决方案
桌面端
- electron:代表作在http://electron.atom.io/apps/,包含atom, visual studio code, bearychat,Slack等,不支持XP系统
- NW:支持xp系统,官方网站https://nwjs.io/,接口上大体与electron相仿(一位中国作者后台主要负责electron)。
- Hex:代表作有道词典。官方网站http://hex.youdao.com/zh-cn/index.html
手机端
- PWA: 相关文章https://github.com/sundway/awesome-pwa,代表作有aliexpress等,消息推送等功能有待验证。
- react native: 原生应用,代表作http://facebook.github.io/react-native/(有百度facebook,百度百科,QQ),以及http://reactnative.cn/cases.html
- weex:原生应用,代表作天猫,淘宝,钉钉优酷等,支持安卓,IOS,web三个平台
- cordova: http://cordova.apache.org/
- 微信小程序:功能受限
总结
- 开发桌面应用的话,优先考虑electron,除非需要支持xp系统
- 开发移动应用,学习成本依次为 PWA < cordava < weex < react native。其中PWA无需熟悉原生应用编程技术,cordava需要少量,而weex与react需要较多。从性能和能实现的功能上来说则顺序相反。
- weex,react与微信小程序的开发模式都是一样的,都是将html,css代码转换为原生应用。PWA和cordava的开发模式和web差不多,差别在于PWA通过谷歌公司实现推送等原生应用功能,而cordava通过插件实现。
- weex,react,cordava都需要通过应用渠道进行分发,而PWA需要安装谷歌浏览器57以上版本,微信小程序功能受限。