post
表冗余个country
字段,直接在post
表进行过滤分页(这样就不用考虑数据量会很大),再去user
表获取用户详细信息。
不过查询条件如果再需要用到user
表其它字段,那还是在程序里面做过滤吧,可以权衡看下。
没有足够的数据
delta_lt_0 赞了回答 · 2020-07-08
post
表冗余个country
字段,直接在post
表进行过滤分页(这样就不用考虑数据量会很大),再去user
表获取用户详细信息。
不过查询条件如果再需要用到user
表其它字段,那还是在程序里面做过滤吧,可以权衡看下。
post表冗余个country字段,直接在post表进行过滤分页(这样就不用考虑数据量会很大),再去user表获取用户详细信息。不过查询条件如果再需要用到user表其它字段,那还是在程序里面做过滤吧,可以权衡看下。
关注 4 回答 3
delta_lt_0 赞了回答 · 2020-04-23
new:
In Go terminology, it returns a pointer to a newly allocated zero value of type T
.
new 返回一个指针,指向的对象是 zero value 。map slice channel 的 zero value 是 nil。
make 返回一个相应类型的对象(不是指针),这个对象一定不是 nil 。
In Go terminology, it returns a pointer to a newly allocated zero value of type T.
关注 2 回答 2
delta_lt_0 赞了回答 · 2020-04-23
new
是新建一个类型的指针的变量,new(User)
相当于&User{}
,创建的指针指向的对象属性全部是零值。make
是创建一个指定类型(仅map、chan、slice支持make)变量,参数指定了对象的类型和容量以及长度,并进行了对象的初始化操作。
make([]int, 3) // slice len=3 cap=3
make([]int, 0, 3) //slice len=9 cap=3
make(chan int, 3) // chan 容量3
make(map[int]int, 3) // map 容量3
其中Ptr类型变量比较简单就一个地址数值;而Slice、Chan、Map类型变量是相对复杂一些拥有很多属性,在make时会根据参数执行一些初始化操作,例如分配长度需要空间。
new -> Ptr
make -> Slice Map Chan
new是新建一个类型的指针的变量,new(User)相当于&User{},创建的指针指向的对象属性全部是零值。make是创建一个指定类型(仅map、chan、slice支持make)变量,参数指定了对象的类型和容量以及长度,并进行了对象的初始化操作。
关注 2 回答 2
delta_lt_0 收藏了问题 · 2020-04-22
type Request struct {
...
}
r1 := new(Request)
r2 := &Request{}
r1 和 r2 有什么区别吗?
我是看到标准库中 net/http/request.go
func (r *Request) WithContext(ctx context.Context) *Request
的实现用到了new
, 看了很多网上的资料都找不到为什么要用new.
我是看到标准库中 net/http/request.go func (r *Request) WithContext(ctx context.Context) *Request的实现用到了new, 看了很多网上的资料都找不到为什么要用new.
delta_lt_0 关注了问题 · 2020-04-22
type Request struct {
...
}
r1 := new(Request)
r2 := &Request{}
r1 和 r2 有什么区别吗?
我是看到标准库中 net/http/request.go
func (r *Request) WithContext(ctx context.Context) *Request
的实现用到了new
, 看了很多网上的资料都找不到为什么要用new.
关注 6 回答 4
delta_lt_0 提出了问题 · 2020-04-22
在 effective go 里写道:
https://golang.org/doc/effect...
does not initialize the memory,it only zeros it
https://golang.org/doc/effect...
It creates slices, maps, and channels only, and it returns an initialized (not zeroed) value of type T (not *T)
意思大概是:
new : allocate memory + zero it
make : allocate memory + initialize memory
我的疑问是:
Q1 : alloate memory 我能理解,initialize memory 是什么意思?
Q2 : 如上面写的 new zero it
,但 make not zeroed
,这个说法准确吗?好像仅 effective go 里提到了这个 zero 操作的区别,其他关于 new 和 make 区别的文章里都没有提到。
在 effective go 里写道: new [链接] {代码...} make [链接] {代码...} 意思大概是: new : allocate memory + zero it make : allocate memory + initialize memory 我的疑问是: Q1 : alloate memory 我能理解,initialize memory 是什么意思? Q2 : 如上面写的 n...
关注 2 回答 2
delta_lt_0 关注了问题 · 2020-02-21
Q1: 如何理解池化技术?
我的理解是:
比如连接池,就是将连接看作一个资源,放到一个pool里,有一个调度器(不知道这个说法正不正确)根据请求来调度这些连接。连接池的作用是避免每一次使用都要建立连接、销毁连接等这方面的开销。
Q2: php-fpm 可以算是一个连接池吗?
如果 Q1 我的理解正确,那么 php-fpm 算连接池吗? 因为我有看到 php-fpm 会有一个 pool.d 的目录。
如果 php-fpm 算,那么 fastcgi 的其他实现也都算吗? nginx 的 master worker 进程算吗?
Q3: 除了连接池,还有其他的池化技术吗?
关注 8 回答 3
delta_lt_0 提出了问题 · 2020-02-16
如下图:
我的问题是:
能否请大家帮忙分析一下第8,9跳。
如下图: 我的问题是: 第 8 跳为什么有 3 个不同的 host? 第 8 跳中,为什么第 1 个 host 发送 4 个探测包,而接下来 2 个 host 各 1 个探测包 ? 能否请大家帮忙分析一下第8,9跳。
关注 1 回答 0
delta_lt_0 回答了问题 · 2019-12-21
试着回答一下 :
它们两者在系统架构中的角色不同。
eventbus 可以把收集到的事件,dispatch 给异构的 consumer(比如mq) 去处理。
当然,event bus 是一个模式,而 mq 是一种技术。你可以把 mq 改造一下,让 mq 实现 event bus 的功能,那么此时这个经过改造的 mq 它也能当做 event bus 来用。
试着回答一下 : 它们两者在系统架构中的角色不同。 eventbus ,是事件集散中心,它负责收集、散发事件。它本身不消费事件。 mq,一般是事件处理者,它接收到事件之后,内部消费掉。 eventbus 可以把收集到的事件,dispatch 给异构的 consumer(比如mq) 去处理。 当然...
关注 3 回答 2
delta_lt_0 关注了问题 · 2019-12-15
go实现的代码:
https://segmentfault.com/q/1010000015929180?sort=created
php实现的代码
https://segmentfault.com/a/1190000011059980
运行这个提问的第一个回答的代码后发现,虽然golang已经是实时把内容输出给浏览器了,但是浏览器并不是实时显示从服务器获取到的内容
请问如何才能实现浏览器也实时显示的功能呢?
关注 4 回答 2
查看全部 个人动态 →
(゚∀゚ )
暂时没有
注册于 2016-05-30
个人主页被 1.2k 人浏览
推荐关注