Mysql使用索引可能失效的场景

Mysql使用索引可能失效的场景1.WHERE字句的查询条件里有不等于号(WHERE column!=…),MYSQL将无法使用索引 2.类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=…),MYSQL将无法使用索引 3.在JOIN操作中(需要从多个数据表提取数据时),MYSQL只有在主键和外键的数据类型相同时才能使用索引,否则即使建立了索引也不会使用 4.如果WHERE子句的查询条件里使用了比较操作符LIKE和REGEXP,MYSQL只有在搜索模板的第

java程序初始化顺序

java程序初始化顺序 在java语言中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化,当所有成员完成初始化后,才会调用对象所在类的构造函数创建对象。 Java程序的初始化一般遵循3个原则(优先级依次递减): (1)静态对象(变量)优于非静态对象(变量)的初始化,其中,静态对象(变量)只初始化一次,非静态对象(变量)可能会初始化多次。(2)父类优先于子类进行初始化。(3)按照成员变量的定义顺序进行初始化。即使变量定义散布于方法定义之中,他们依然在任何方法(包括构造函数)被调用之前

重入锁、独占锁与共享锁、公平锁与非公平锁

重入锁、独占锁与共享锁、公平锁与非公平锁 前面了解了J.U.C中两个重要的类或接口,其它的实现类都是以此为基础的,现在还需要了解一下一些锁的概念,有助于后面学习一些实现类或接口。 重入锁在并发中,无论是synchronized还是lock也好,内部都有重入的特性,而且特性的含义是一样的。 重入(re-entrant),同一个线程可以获取已持有的锁; 已知的有两种出现场景:1、加锁方法调用另外一个加锁方法;2、递归调用加锁方法; 归根结底,就是一个加锁方法调用了另外一个加锁方法; public

单机版minikube osx下安装

Kubernetes 单机版minikube osx下安装安装步骤 brew install kubectl安装Kubernete命令行程序。brew cask install minikube安装minikubeminikube start启动minikub stop关闭 完成 遇到的问题看着网上的安装教程安装之后,执行minikube dashboard,报错。Could not find finalized endpoint being pointed to by kubernetes-d

gulp相关的东西

gulp相关的东西 最近公司缺人,又得写前端js了,用到gulp相关的东西,记录一下。 简介易于使用Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务 构建快速利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作。 插件高质Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作。 易于学习通过最少的 API,掌握 Gulp 毫不费力,构建工作尽在掌握:如同一系列流管道。 常用的包 不说安装了,这些可以很简单 gulp.src(g

Rust字符串相似类型

str 是不可变的字符串;String 是可变的字符串;CStr 用于表示由C分配、rust借用的C字符串;CString 用于表示由rust分配、可以传递给C函数使用的C字符串;OsStr 平台相关的字符串,具体看 rust/os_str.rs at master · rust-lang/rust · GitHub;OsString 这个是上面的可变版本;Path 用来表示路径,方法和普通字符串不一样,当然独立出来;PathBuf 这是Path的可变版本;总之普通字符串就用str和String

rustlang tcp客户端例子

use std::io::prelude::*; use std::net::TcpStream; use std::io::stdin; use std::thread; fn main() { let mut stream=TcpStream::connect("127.0.0.1:8080").unwrap(); stream.set_nodelay(true).unwrap(); loop{ let mut test_strea

rustlang tcp服务端例子

use std::net::TcpListener; use std::{thread, time}; use std::net::TcpStream; use std::io::prelude::*; use std::io::stdin; use std::sync::Arc; use std::sync::Mutex; use std::net::Shutdown; use std::sync::atomic::{AtomicUsize, Ordering}; fn main() {

队列

SPSC:一个Producer :一个ConsumerSPMC:一个Producer :多个ConsumerMPSC:多个Producer :多个ConsumerMPMC:多个Producer :多个Consumer

rust各种指针,方便查找使用

rust各种指针Box 首先是Box,Box很接近C系语言的指针的概念,就是把一个数据结构放到heap上,然后传递一个地址调用。 Cell和RefCell代表了Rust的一个特性:Interior Mutability,内在的可变性。顾名思义,Cell就是一个细胞,一个单元,或者说一个容器。这个容器和Box不同,Box是一个不可变的指针,如果我们想改变一个box的值,比如这么搞: fn main() { let mut x = Box::new(10i32); *x = 20;