1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Fix document error with OS part

This commit is contained in:
dongzl 2019-04-24 11:39:34 +08:00
parent 58f9a50e5c
commit cb1ce67475
2 changed files with 5 additions and 5 deletions

View File

@ -92,7 +92,7 @@ Linux文件系统的结构层次鲜明就像一棵倒立的树最顶层是
**常见目录说明:**
- **/bin** 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里;
- **/bin** 存放二进制可执行文件(ls、cat、mkdir等),常用命令一般都在这里;
- **/etc** 存放系统管理和配置文件;
- **/home** 存放所有用户文件的根目录是用户主目录的基点比如用户user的主目录就是/home/user可以用~user表示
- **/usr ** 用于存放系统应用程序;
@ -165,7 +165,7 @@ Linux命令大全[http://man.linuxde.net/](http://man.linuxde.net/)
**在实际开发中使用vim编辑器主要作用就是修改配置文件下面是一般步骤**
vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q! 输入wq代表写入内容并退出即保存输入q!代表强制退出不保存。)
vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入wq/q! 输入wq代表写入内容并退出即保存输入q!代表强制退出不保存。)
4. **`rm -rf 文件`** 删除文件(删)
同目录删除:熟记 `rm -rf` 文件 即可
@ -188,7 +188,7 @@ Linux中的打包文件一般是以.tar结尾的压缩的命令一般是以.g
f指定文件名
比如加入test目录下有三个文件分别是 :aaa.txt bbb.txt ccc.txt,如果我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz可以使用命令**`tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt`或:`tar -zcvf test.tar.gz /test/`**
比如加入test目录下有三个文件分别是aaa.txt bbb.txt ccc.txt如果我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz可以使用命令**`tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt`或:`tar -zcvf test.tar.gz /test/`**
**2解压压缩包**
@ -339,7 +339,7 @@ passwd命令用于设置用户的认证信息包括用户密码、密码过
- 查看当前系统的端口使用netstat -an
- **net-tools 和 iproute2 **
`net-tools`起源于BSD的TCP/IP工具箱后来成为老版本Linux内核中配置网络功能的工具。但自2001年起Linux社区已经对其停止维护。同时一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools只支持`iproute2`。linux ip命令类似于ifconfig但功能更强大旨在替代它。更多详情请阅读[如何在Linux中使用IP命令和示例](https://linoxide.com/linux-command/use-ip-command-linux)
- **`shutdown`** `shutdown -h now` 指定现在立即关机;`shutdown +5 "System will shutdown after 5 minutes"`:指定5分钟后关机同时送出警告信息给登入用户。
- **`shutdown`** `shutdown -h now` 指定现在立即关机;`shutdown +5 "System will shutdown after 5 minutes"`指定5分钟后关机同时送出警告信息给登入用户。
- **`reboot`** **`reboot`** 重开机。**`reboot -w`** 做个重开机的模拟(只有纪录并不会真的重开机)。

View File

@ -100,7 +100,7 @@ Dubbo 与 Spring Cloud 并不是竞争关系Dubbo 作为成熟的 RPC 框架
当MySQL单表记录数过大时数据库的CRUD性能会明显下降一些常见的优化措施如下
1. **限定数据的范围:** 务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内
1. **限定数据的范围:** 务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内;
2. **读/写分离:** 经典的数据库拆分方案,主库负责写,从库负责读;
3. **垂直分区:** **根据数据库里面数据表的相关性进行拆分。** 例如,用户表中既有用户的登录信息又有用户的基本信息,可以将用户表拆分成两个单独的表,甚至放到单独的库做分库。**简单来说垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表。** 如下图所示,这样来说大家应该就更容易理解了。![](https://user-gold-cdn.xitu.io/2018/6/16/164084354ba2e0fd?w=950&h=279&f=jpeg&s=26015)**垂直拆分的优点:** 可以使得行数据变小在查询时减少读取的Block数减少I/O次数。此外垂直分区可以简化表的结构易于维护。**垂直拆分的缺点:** 主键会出现冗余需要管理冗余列并会引起Join操作可以通过在应用层进行Join来解决。此外垂直分区会让事务变得更加复杂
4. **水平分区:** **保持数据表结构不变,通过某种策略存储数据分片。这样每一片数据分散到不同的表或者库中,达到了分布式的目的。 水平拆分可以支撑非常大的数据量。** 水平拆分是指数据表行的拆分表的行数超过200万行时就会变慢这时可以把一张的表的数据拆成多张表来存放。举个例子我们可以将用户信息表拆分成多个用户信息表这样就可以避免单一表数据量过大对性能造成影响。![数据库水平拆分](https://user-gold-cdn.xitu.io/2018/6/16/164084b7e9e423e3?w=690&h=271&f=jpeg&s=23119)水平拆分可以支持非常大的数据量。需要注意的一点是:分表仅仅是解决了单一表数据过大的问题但由于表的数据还是在同一台机器上其实对于提升MySQL并发能力没有什么意义所以 **水平拆分最好分库** 。水平拆分能够 **支持非常大的数据量存储,应用端改造也少**,但 **分片事务难以解决** 跨界点Join性能较差逻辑复杂。《Java工程师修炼之道》的作者推荐 **尽量不要对数据进行分片,因为拆分会带来逻辑、部署、运维的各种复杂度** 一般的数据表在优化得当的情况下支撑千万以下的数据量是没有太大问题的。如果实在要分片尽量选择客户端分片架构这样可以减少一次和中间件的网络I/O。