mysql数据库索引的建立和使用

数据库用的是Mysql

假设有 n多个字段

查询的时候会用到索引

ABC三列都不是主键
可能会用 A B C 三个字段做索引
可能会用 A B D 三个字段做索引
可能会用A B俩字段做索引

这三个字段的值是不改变的

这样的索引该怎么建立。谢谢

1个回答

用组合索引,且组合索引的第一个字段需要出现在查询组句中(最左优先原则),这样索引才会被应用上。

hjs218
Json-Huang 回复ahuwangqun: 建一个就好了,比如KEY index_name (A,B,C,D),关键注意顺序,会按顺序匹配。可以用EXPLAIN执行下sql语句分析执行计划,
7 个月之前 回复
u010468993
ahuwangqun 我就是问怎么建,是索引1 是ABC,索引2是ABD这样吗
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql数据库的索引问题
我在Mysql数据库里有一张文章表,表中有文章标题,文章内容,文章分类,作者,发表时间等字段, 面试官问我,在前端的搜索框里输入文章内容的有关的关键词,来查找对应的文章,怎么对文章表的文章内容字段建立索引, 来加快查找速度,我说在文章内容字段上加建立索引啊,他说如果直接对文章内容字段建立索引,查找的速度也是比较慢的,因为文章内容的字数很多,他问怎么对文章内容字段建立索引来加快查找文章的速度,我当时没答上来,小白请各位大神来解答哈??很感激你们!
MySQL 数据库 索引优化
现有sql语句: ①select * from tab1 where number = '5' and mode >= 1 and mode <= 21 order by id desc limit 100; ②select * from (select * from tab2 where mode >= 1 and mode <= 21 and name = '5' and create_time >= '2018-01-01' and create_time <= '2019-09-04' order by id desc) A order by id; 请问这两句sql该如何建立索引以达到优化的目的?对于①,我建立了联合索引,key(number,id)但是explain的时候提示没有用到该索引,用的是主键索引。
MySQL数据库性别,省份字段索引问题
如题,当数据量达到单表千万以上的时候,检索已经很慢了,如果检索条件是根据性别或者省份来做就需要全表遍历,而性别这种选择性低的又不适合建立索引,我应该怎么提升用性别或省份作为检索条件的语句检索速度呢?
关于MySQL数据库的几个问题
1.数据库互相联通,非root或sa账号。数据库名称dbpractice 2.创建表(表定义),插入记录,常规SQL语句,主键,外键,约束,自增长列 3.基础数据词典 4.建立视图 5.存储过程 6.函数 7.触发器 8.建立索引 9.将单表数据导入和导出成txt,csv或xls格式 10.将整库数据导出成脚本和二进制文件,并恢复成dbpractice2数据
如何同时给已经创建好的表多列各自添加唯一索引
在操作mysql数据库的时候 怎么同时给多个列各自添加一个唯一索引,注意不是添加多列索引,而是同时给多列各自添加一个唯一索引 用命令行来操作
Mysql 中文字段normal索引失效
我的数据库表结构如下![表结构](https://img-ask.csdn.net/upload/201502/22/1424588845_361145.png) 使用localtion作为where查询判断条件,给localtion字段建立普通索引 ![索引类型](https://img-ask.csdn.net/upload/201502/22/1424588942_265226.png) localtion字段里面全部都是中文地名,但是使用where查询的时候数据库没有使用建立好的索引,求大神指导。难道中文字段只能建立全文索引吗? ![没有使用索引](https://img-ask.csdn.net/upload/201502/22/1424589012_661662.png)
创建数据库,创建数据完整性包含索引,视图,触发器和存储过程?
![图片说明](https://img-ask.csdn.net/upload/201905/30/1559219289_511359.png) 创建数据库, 包含三张表, 含有索引,视图,存储过程,触发器。 求大佬帮助啊,数据库新手,做不来。。。
求一个PHP操作mysql表创建/字段名称修改/字段类型修改的封装类(不是对数据的操作)
我想用PHP控制数据库的操作,包括创建表,修改表中字段名称,添加字段,修改字段类型,修改索引等操作. 能自动比较新修改的内容和原内容的差别,自动判断是需要修改字段,还是删除字段等
MySQL信息修改保存失败
背景:MySQL初学入门,根据视频进行基本的语句操作,建立了数据库db–book,表t–book,由于练习导致里面存入的东西很乱,各种插入 删除,修改和索引,就把数据库删除后打算重新命名一个一样的, 问题:命名的时候发现可以,但是在表属性下保存id,name的信息的时候不可以,出现了如图的问题,求大牛解决
MYSQL提示Can't create a new thread (errno 12)有解决方案吗?
mysql通常不是会自动断开连接的吗? 我在底部增加了mysql_clos(); 也一样不行。 我有一个数据库表,大概6W多条数据,只能通过 char 型查询,这个查询得很慢,也没建立索引。。 wamp重启不到3秒又立即提示错误。。用的是腾讯云的低配服务器。 双核CPU,2G内存。
关于solr在web项目中的使用问题
我现在在学习solr, 根据网上资料,在本机环境下,用solr5.1.0+tomcat7 把环境搭建好了(能访问solr的web管理界面,也能用DIH导入mysql数据库数据, 建立索引),用solrj 写了一些测试类,也可以跑通。 但是接下来我不知道该怎么进行了,怎么把solr集成到我的项目中去? 比如我有张用户表,怎么把用户表信息加索引? 加完索引之后怎么在web端或者通过接口把数据查出来? 请各位大神指点一下,谢谢! 方便的话,可以加我q:1129919550。 不胜感激
SAAS系统过十亿的操作日志要如何做列表展示?
刚接手系统的时候,发现过亿的操作日志写在 MySql的一张表中,主要是记录用户登录,做了那些动作(增删改查),随之便做了如下处理(索引、sql均已优化过了): 1、刚开始接手以为查询并不频繁,做了分区,后来发现查询很频繁; 2、对数据做了分表,一个月一个表,发现夸月查询又很频繁,并且每个用户都强烈要求看至今所有的数据; 3、这些查询会集中在某个点并发查询,会产生大量的慢查询导致影响到其他业务,所以对这些查询频繁的用户做了redis数据缓存; 以上做完之后,系统算是稳定下来了,但随着用户的增加单表数据也会随之增加,并且在某个点同样会爆发高并发访问数据库的情况,近期在考虑是否可以用搜索引擎来做这个事情,因为历史数据是不可变的,思路如下,请大神指点: 1、将此模块单独出一个微服务 2、创建总索引 3、每天定时增量索引,并将增量索引数据搬入和业务隔离的日志数据库中对应历史表(同样每个月创建一个表) 4、在查询的时候有多种情况的考虑,对当天的数据进行数据库查询,对历史数据进行搜索引擎索引查询,若夸有当天和历史数据的查询,进行分别查询后结果合并 不知此方法是否可行,因为我在网上找了很久,都并没搜索到使用搜索引擎这种方法,全都是分库分表,或者用hbase等解决方案,所以担心是否会有弊端。
关于MySQL触发器的问题
``` CREATE TABLE `retailcatalog` ( `UUID` varchar(38) NOT NULL COMMENT '唯一标识,自动生成,为主键', `PRODUCTUUID` varchar(38) NOT NULL COMMENT '商品唯一标识,需要创建索引', `BEGINDATE` date NOT NULL COMMENT '起始时间', `ENDDATE` date NOT NULL COMMENT '截止时间', `PRICE` double(19,4) NOT NULL COMMENT '销售价', PRIMARY KEY (`UUID`), UNIQUE KEY `UQ_RETAILCATALOG_RetailcatalogID` (`UUID`,`PRODUCTUUID`), KEY `IX_retailcatalog_productUUID` (`PRODUCTUUID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` ``` CREATE TABLE `product` ( `UUID` varchar(38) NOT NULL, `CODE` varchar(20) NOT NULL COMMENT '代码,需要创建索引', `NAME` varchar(100) NOT NULL COMMENT '名称', `ORDERPRICE` double(19,4) DEFAULT NULL COMMENT '采购价', `SALEPRICE` double(19,4) DEFAULT NULL COMMENT '销售价(数据来源于 RETAILCATALOG 表)', `STATE` int(11) DEFAULT NULL COMMENT '状态 (0 为使用中, 999 为已删除 )', PRIMARY KEY (`UUID`), UNIQUE KEY `UUID` (`UUID`), KEY `IX_product_code` (`CODE`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 有两张表,retailcatalog和product 有一个存储过程 ``` /* *将 RETAILCATALOG 上的 PRICE 数据同步到 PRODUCT 表上的 SALEPRICE */ drop procedure if exists proc_product_saleprice_state_update; create procedure proc_product_saleprice_state_update( in nowday date ) begin update product p, retailcatalog r set p.SALEPRICE=r.PRICE,p.STATE=0 where r.PRODUCTUUID = p.UUID and nowday >= r.BEGINDATE and nowday <= r.ENDDATE; update product p, retailcatalog r set p.SALEPRICE=0,p.STATE=999 where (r.PRODUCTUUID = p.UUID and (nowday < r.BEGINDATE or nowday > r.ENDDATE)) or not exists( select 1 from retailcatalog r where p.UUID = r.PRODUCTUUID); end; ``` a. 编写一个触发器,要求在修改销售目录( RETAILCATALOG )数据的 PRICE 之后,修改 PRODUCT 表的 SALEPRICE b. 编写一个触发器,要求在修改商品表( PRODUCT )数据的状态( STATE )之后,如果发现 STATE 为 999 ,则删除对应的 RETAILCATALOG 以下是我写的触发器 ``` /* *在修改销售目录( RETAILCATALOG )数据的 PRICE 之后,修改 PRODUCT 表的 SALEPRICE */ DROP TRIGGER IF EXISTS retailcatalog_after_update_price_on_product; CREATE TRIGGER retailcatalog_after_update_price_on_product AFTER UPDATE ON retailcatalog FOR EACH ROW BEGIN IF new.PRICE <> old.PRICE THEN UPDATE product p SET p.SALEPRICE = new.PRICE WHERE p.UUID = new.PRODUCTUUID; END IF; END; ``` ``` /* *在修改商品表( PRODUCT )数据的状态( STATE )之后,如果发现 STATE 为 999 ,则删除对应的 RETAILCATALOG */ DROP TRIGGER IF EXISTS product_after_update_state_on_retailcatalog; CREATE TRIGGER product_after_update_state_on_retailcatalog AFTER UPDATE ON product FOR EACH ROW BEGIN IF new.STATE = 999 THEN DELETE r FROM retailcatalog r WHERE ( r.PRODUCTUUID = new.UUID AND new.STATE = 999 ); END IF; END; ``` 当我运行存储过程时 call proc_product_salepriceAndstate_update(CURDATE()); 数据库报错 call proc_product_salepriceAndstate_update(CURDATE()) > 1442 - Can't update table 'retailcatalog' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. 各位大神能指导下我应该如何改进吗?
mysql 悲观锁 for update 无效问题
问题:springboot 项目,对数据库加行锁,多线程测试结果仍然是不安全的。 实体类:和数据库表对应,数据库表主键id建立了索引 ``` @Entity @Table(name = TableName.TABLE_SPORTRECORDID) @JsonInclude(value= JsonInclude.Include.NON_EMPTY) public class SportRecordId { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; //跑步记录的唯一Id private Integer useageid; //省去setter .getter } ``` Repository ``` @Repository public interface SportRecordIdRepository extends PagingAndSortingRepository<SportRecordId, Integer> { @Query(nativeQuery=true,value = "select a.* from sportrecordid a where a.id = ?1 for update") Optional<SportRecordId> findSportRecordIdForUpdate(Integer id); } ``` Service ``` @Autowired private SportRecordIdRepository sportRecordIdRepository; @Override //@Transactional(isolation = Isolation.SERIALIZABLE) public Integer getSportRecordIdForUpdate(Integer id) { SportRecordId res = sportRecordIdRepository.findSportRecordIdForUpdate(id).orElse(null); if(res!=null) { res.setUseageid(res.getUseageid()+1); SportRecordId saved = sportRecordIdRepository.save(res); return saved.getUseageid(); } else { throw new ServiceException(ServiceErrorCode.SERVER_BUSY.getCode(),ServiceErrorCode.SERVER_BUSY.getMessage()); } } ``` 多线程测试 ![图片说明](https://img-ask.csdn.net/upload/201904/25/1556186607_534607.jpg)
elasticseach jdbc-river read only
使用jdbcriver 连接mysql,同步数据,同步已有的,新增的,修改的,可以同步数据但是报错![图片说明](https://img-ask.csdn.net/upload/201501/20/1421747099_39937.jpg) 我用java程序jdbc查询数据的时候并不报错, 这是建立索引的代码: 创建索引 curl -XPUT 'http://localhost:9200/profile' 创建数据表与索引映射 curl -XPUT 'http://localhost:9200/profile/user/_mapping' -d ' { "user": { "properties": { "id": { "type": "string", "store": "yes" }, "name": { "type": "string", "store": "yes" }, "login_name": { "type": "string", "store": "yes" } } } }' * 运行river同步数据 curl -XPUT 'http://localhost:9200/_river/who_jdbc_river/_meta' -d '{ "type": "jdbc", "jdbc": { "driver": "com.mysql.jdbc.Driver", "url": "jdbc:mysql://localhost:3306/profile", "user": "root", "password": "root", "sql": "select id as _id,name,login_name from user", "index": "profile", "type": "user", "bulk_size": 100, "max_bulk_requests": 30, "bulk_timeout": "10s", "flush_interval": "5s", "schedule": "0 0-59 0-23 ? * *" } }' 经过三个步骤后,可以同步我本地数据库中的数据了,只是报错,想解决一下,各位帮帮忙
mysql 查询 求sql语句
1. User表用于记录用户相关信息, Photo表用于记录用户的照片信息, 两个表的定义如下: CREATE TABLE User( --用户信息表 UserId bigint, --用户唯一id Account varchar(30) --用户唯一帐号 ); CREATE TABLE Photo( --照片信息表 PhotoId bigint, --照片唯一id UserId bigint, --照片所属用户id AccessCount int, --访问次数 Size bigint --照片文件实际大小 ) 1) 请给出SQL打印帐号为"dragon"的用户访问次数最多的5张照片的id; 2) 给出SQL打印拥有总的照片文件大小(total_size)最多的前10名用户的id, 并根据total_size降序排列 3) 为优化上面两个查询, 需要在User和Photo表上建立什么样的索引? 2. 数据库中有表User(id, name, age): 表中数据可能会是以下形式: id name age 001 张三 56 002 李四 25 003 王五 56 004 赵六 21 005 钱七 39 006 孙八 56 .............. 由于人员年龄有可能相等, 请写出SQL语句, 用于查询age最大的人员中, id最小的一个记录
java几千万行数据做查询的时候?
我的数据库是:mysql <br />一张表的数据上了千万行,而且每天都以10几万行在增张。 <br /> <br />目前需要解决的问题,我的页面在做几个字段的查询的时候显示出来居慢,我用的是java,没用 <br />什么框架,直接JDBC查询。 <br /> <br />大家有什么好方法没? <br />我目前想这样搞下:写个存储过程,JAVA调存储过程返回的数据集(集合),应该快的多, <br />但是mysql可以返回来数据集吗,java代码怎么得到?又不太好搞? <br /> <br /> <br />这样的问题大家应该碰到过,有经验的朋友们请告诉下,谢谢大家?<br /><strong>问题补充:</strong><br />我的SQL语句里面用了日期函数判断,在日期上建立索引,会失效吗? <br />比如:......where ((TRUNC(IMMS_REPORT_REALSEND.DATCREATE) &gt;= TRUNC(sysdate)) <br />
jsp做一个类似于视频评论下的回复功能的获得数据显示,对前端不是很熟悉,求高手解答
CREATE TABLE `videocomment` ( `id` int(10) NOT NULL AUTO_INCREMENT,/**ID**/ `createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,/**创建时间**/ `userId` int(10) NOT NULL,/**用户ID**/ `videoId` int(10) NOT NULL,/**视频ID**/ `respondId` int(10) NOT NULL DEFAULT '0',/**回复上一条评论ID,0为顶级**/ `examine` int(1) NOT NULL DEFAULT '0',/**审核是否通过**/ `examineTime` timestamp NULL,/**审核时间**/ `ip` varchar(50) null,/***IP**/ `address` varchar(200),/**地址*/ `discuss` varchar(5000) null, /**评论**/ `isDelete` int(1) NOT NULL DEFAULT '0',/**是否删除**/ PRIMARY KEY (`id`) ); /** 用户表 **/ CREATE TABLE `user` ( `id` INT(10) NOT NULL, /** 用户ID主键 **/ `loginName` VARCHAR(45) NOT NULL, /** 登录名 **/ `nickName` VARCHAR(45) NOT NULL, /** 用户昵称 **/ `mobile` INT(11) NOT NULL, /** 手机号 **/ `email` VARCHAR(45) NULL, /** 电子邮箱 **/ `password` VARCHAR(45) NULL, /** 密码 **/ `potentialUserId` INT(10) NOT NULL, /** 潜在用户ID **/ `referrerId` INT(10) NULL, /** 推荐人ID **/ PRIMARY KEY (`id`), /** 主键 **/ UNIQUE INDEX `loginName_UNIQUE` (`loginName` ASC),/** 登录名唯一索引 **/ UNIQUE INDEX `nickName_UNIQUE` (`nickName` ASC),/** 用户昵称唯一索引 **/ UNIQUE INDEX `mobile_UNIQUE` (`mobile` ASC),/** 手机号唯一索引 **/ UNIQUE INDEX `email_UNIQUE` (`email` ASC)); /** 邮箱唯一索引 **/ 数据库用的mysql 想要做一个类似于下图效果的评论回复显示 ![图片说明](https://img-ask.csdn.net/upload/201604/11/1460337994_949886.png) 之前是用的<c:forEach>循环读取数据然后显示,如果要像上图那样显示,jsp中要怎么写呢 select videocomment.id,createTime,nickName ,videoId ,discuss ,address ,ip,videocomment.userId from videocomment LEFT JOIN user on videocomment.userId=user.id where 1=1 and videocomment.videoId= 1 order by videocomment.createTime desc limit 5,5 这是我自己写的一个分页查询,关联视频下的所有评论 如果想同时再把评论中的回复一同查询出来要怎样写SQL
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问

相似问题