首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

粗聊Mysql——你会

本文中说到的“”,并非单纯的一个库,或是一张表,而是你建好的库和表在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到的问题以及处理的方法,算是一个小小的心得,给大家分享下。...比如现在有2张表,一张新闻栏目表,一张新闻表,现在两张表需要进行关联,我想大多数人的做法肯定是在新闻表里一个新闻栏目id,然后把新闻栏目表里的主键ID(自增)写到这个字段里,通过这样进行两表关联。   ...这样就会造成一种情况,如果那天对数据库进行优化,把主键进行了重新排序(暂时没有找到mysql优化软件会优化主键,但是可以通过代码删除主键,然后从新建立自增主键来实现主键重新排序),那就彻底杯具了,栏目和文章完全对不上号了...所以我建议两表之间关联不用主键,而是单独一个编号的字段,我们这里可以用mysql的uuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张表要2个主键,一个物理主键(自增id...),一个逻辑主键(UUID),原因是:对于InnoDB这种聚集主键类型的引擎来说,数据会按照主键进行排序,由于UUID的无序性,InnoDB会产生巨大的IO压力,此时不适合使用UUID做物理主键,可以把它作为逻辑主键

5.2K10

AI可以做智能投资

AI可以做智能投资吗? 这个问题应该说答案是肯定的——可以。关于使用计算机自动化做智能投资的研究一直没停过。这些年大家一直说的量化交易其实就是这样一个范畴的内容。那么AI做智能投资是怎么做呢?...相信稍微做过点股票或者外汇交易的读者朋友可能都能想到,可以通过建立一个简易的回归或者分类模型来训练一个预测模型。输入是K线图上的报价或者指标,输出是一个报价,或者一个“上升/下降”的分类。...这种方法可以吗?当然没问题,从机器学习的角度来说这么做一定是一种理论上可以尝试的路子。最近的不少工学论文也有不少在讨论关于股价预测的深度学习模型。 简化的方法有吗?也是有的,而且已经诞生很久了。...或者也有根据相关系数来做的阿尔法选股法,可以通过简单计算大盘指标和个股之间的相关性关系来决定在牛市中买入振幅较大的股票,或者在熊市中买入与大盘相关性较小的股票来获利。...不论以上的哪一种,都是可以通过统计学,不太复杂的机器学习,或者一些程序规则较为容易实现的。这些方法都非常可靠,跑赢CPI和银行利息是非常非常容易的。以后有机会会跟大家一一进行分享。

74930
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Node.js】你真的了解 Node.js

    Node.js 采用了 V8 引擎,并且在其基础上增加了处理本地文件等功能。但在浏览器中,出于安全考虑,你是无法访问浏览器的文件系统的。所以你可以理解 Node 中的 V8 引擎是增强后的版本。...通过 Node.js,JavaScript 不仅仅可以写在浏览器端,我们可以在我们的电脑中直接执行 JavaScript,也是完成 web 服务应用的非常好的选择,这降低了我们成为全栈工程师的门槛。...Node.js 特点 异步I/O和事件驱动 在 Node.js 中,大部分的 I/O 操作都是异步,非阻塞的。也就是不需要等待该操作完成,就可以接着进行下一步的操作。...也就是说除了用户代码无法并行执行之外,所有的 I/O (磁盘I/O,网络 I/O 等)则是可以并行起来的。这也是 Node.js 能够处理高并发的重要原因。...在 Node.js 中,一个 8GB 内存的服务器,可以同时处理超过 4 万用户的连接。 单线程其实是有弊端的(后文适合场景中会指出)。 跨平台 起初,Node.js 只能在 Linux 平台上运行。

    5.4K10

    Ta 在假笑?这个识别算法可以鉴定

    但是生活中的很多「逼真的」假笑,无论是出于礼貌,或是害羞,亦或是尴尬,你能分辨出来? ?...英国布拉德福德大学(University of Bradford)的研究人员近期开发出了一个面部分析软件,可以发现虚假的面部表情。...这也是一直以来公认的判断真笑和假笑的关键点:自发的、真实的微笑是可以在一个人眼中看到的。比如,真正的微笑,眼睛往往会半闭,眼角会有褶皱;而如果眼睛完全睁大,只有嘴角上扬,那很可能就是假笑。...但是,我们人类通常不会发现眼睛周围细微的移动,而软件则可以更加可靠地发现它。」...也可以用这个计算框架测一下…… 不过,虽然「假笑」让人觉得虚情假意,但是在 2012 年就有一项研究表示,假装微笑其实是一件好事。因为即使假笑,也能减轻压力,改善人的情绪。

    67920

    Linux下可以替换运行中的程序

    今天被朋友问及“Linux下可以替换运行中的程序?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”。...这也可以解释为什么cp的目标文件会继承被覆盖文件的属性而非源文件。...同理,mv只是改变了文件名,其inode不变,新文件使用了新的inode。 问题到这里已经水落石出,不过刨根究底的个性驱使我再做了以下一组实验,没想到结果完全出乎我意料之外!...接下来我把上面对执行文件的测试用例对动态库又做了一遍: (1)cp libtest2.so libtest.so可以直接覆盖已加载的动态库。...不过想想也可以宽恕,毕竟ld也是用户态程序,没有权利去锁定inode,也不应与内核的文件系统底层实现耦合。 到这里都还算在情理之中,看起来Linux也都处理的很好。

    6.4K20

    Spark Streaming 不同Batch任务可以并行计算

    同一Spark Core Job里的Stage可以并行,但是一般如果有依赖则是串行,可以参考我这篇文章Spark 多个Stage执行是串行执行的?。...这里,我们把concurrentJobs设置为2,意味着TaskScheduler接受到了两个Job,然后setMaster[local(2)]表示只可以并发执行两个Task。...WX20170211-230145@2x.png 有点绕,如果大家迷惑,可以把代码贴在自己的IDE上运行一下,然后观察他们的交错时间。...batch完成 concurrentJobs > 1 如果scheduler mode 是FIFO则需要某个Job无法一直消耗掉所有资源 Mode是FAIR则尽力保证你的Job是并行运行的,毫无疑问是可以并行的...回到我们的标题,不同Batch的job有可能会同时在运行,只要满足我前面提到的三个条件,就有可能。

    1.3K30

    JavaScript、js文件、Node.js、静态文件

    通常JavaScript脚本是通过嵌入在HTML页面中来实现自身的功能的,也可以写成单独的js文件。 JavaScript与Java名称上的近似,但是两种完全不同的语言。...JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。...文件 js文件是指包含JavaScript代码,以“.js”为扩展名的文本文档,用于在网页中执行JavaScript指令;可以JS文件是网页JavaScript客户端脚本文件。...三、Node.js node.js – Node是一个让JavaScript运行在服务端的开发平台。...四、静态文件 定义:不是由服务器生成的文件就是静态文件 包含:web项目中的图片、css、js、文本文件txt、脚本、等静态资源,不带jsp、asp、php页面的HTML页面 特点: 1 通常存放在

    6.3K30

    惊呆了,竟然可以用这种方式秒Redis集群?

    搭建 Redis Cluster Redis Cluster 的搭建方式有两种,一种是使用 Redis 源码中提供的 create-cluster 工具快速的搭建 Redis 集群环境,另一种是配置文件的方式手动创建...我们测试完成之后,可以使用以下命令,关闭并清理集群: $ ....Cluster 由于 create-cluster 本身的限制,在实际生产环境中我们需要使用手动添加配置的方式搭建 Redis 集群,为此我们先要把 Redis 安装包复制到 node1 到 node6 文件中...① 设置配置文件 我们需要修改每个节点内的 redis.conf 文件,设置 cluster-enabled yes 表示开启集群模式,并且修改各自的端口,我们继续使用 30001 到 30006,通过...复制代码 从以上结果可以看出 30008 节点也被设置成了主节点。

    36220

    flutter系列之:flutter中可以索引的栈布局IndexedStack

    简介 之前我们介绍了一个flutter的栈结构的layout组件叫做Stack,通过Stack我们可以将一些widget叠放在其他widget之上,从而可以实现图像的组合功能,也是日常中最常用的一种组件了...IndexedStack简介 从名字可以看出,IndexedStack是给Stack添加了一个index的功能,事实是否如此呢?...对于Stack来说,一个widget被放在另外一个widget之上,但是多个widget可以同时展示出来。而对于IndexedStack来说,它只会展示对应index的widget。...可以通过调用setState方法对index进行修改,从而实现动态切换child的目的。...总结 IndexWidget和tab有点类似,大家可以在需要的时候使用。 本文的例子:https://github.com/ddean2009/learn-flutter.git

    29520

    CSP-JS考试中是否可以使用万能头文件

    bits/stdc++.h,包含了c++所有的头文件,因此被称作万能头文件。...typeindex> #include #include #include #endif 在CSP-J/S考试是可以使用万能头文件的...使用了万能头文件之后,就不再需要包含其他头文件了。 使用万能头文件,会把大量的不需要用到的头文件也包含进去,这样会增加编译时间。...也就是说,考试时既可以逐个包含需要用到的头文件,也可以一次性包含万能头文件。 但是,就平时练习来说,建议不要使用万能头文件。理由有三: 第一,万能头文件,也叫“懒人专用头文件”。...第二,万能头文件只存在于GCC编译器中,clang和MSVC编译器中并没有万能头文件。 第三,除了CSP-J/S外,有时候还有一些其他的考试。有些考试会明确规定不允许使用万能头文件

    4.3K30

    惊呆了,竟然可以用这种方式秒Redis集群?

    搭建 Redis Cluster Redis Cluster 的搭建方式有两种,一种是使用 Redis 源码中提供的 create-cluster 工具快速的搭建 Redis 集群环境,另一种是配置文件的方式手动创建...我们测试完成之后,可以使用以下命令,关闭并清理集群: $ ....Cluster 由于 create-cluster 本身的限制,在实际生产环境中我们需要使用手动添加配置的方式搭建 Redis 集群,为此我们先要把 Redis 安装包复制到 node1 到 node6 文件中...① 设置配置文件 我们需要修改每个节点内的 redis.conf 文件,设置 cluster-enabled yes 表示开启集群模式,并且修改各自的端口,我们继续使用 30001 到 30006,通过...复制代码 从以上结果可以看出 30008 节点也被设置成了主节点。

    1.9K20

    JS的分号可以省掉吗?

    第一反应就是JS引擎将代码生成语法树的时候,可能解析不正确。于是,我在第一行末尾加分号测试。...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号...我最终的解法是先声明一个变量来指向这个数组,这样就可以避免以[开头,又不使用分号: let indexArray = [1, 2, 3] indexArray.map(i=>console.log(i)...) 关于Fundebug Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。...版权声明 转载时请注明作者 Fundebug以及本文地址: https://blog.fundebug.com/2018/09/18/js-semicolon-bug/

    9K60
    领券