# 2016某知名互联网公司PHP面试题及答案---续


##### 1 写出mysql中，插入数据，读出数据，更新数据的语句 

```````
INSERT INTO 表名 VALUES (””,””)； 
SELECT * FROM 表名；。 
UPDATE 表名 SET 字段名1=’a’,字段名2=’b’ WHERE 字段名3=’c’；。
```````


##### 2 写入数据时，聚簇索引所在的列的内容是随机的，会引起什么性能问题？ 

```````
聚簇索引情况下，写入数据时，插入速度严重依赖插入顺序，按照主键的顺序插入是加载数据到InnoDB表中速度最快的方式。但如果不是按照主键顺序加载数据，那么在加载完成后最好使用OPTIMIZE TABLE命令重新组织一下表。 
基于聚簇索引的表在插入新行，或者主键被更新导致需要移动行的时候，可能面临“页分裂”的问题。当行的主键值要求必须将这一行插入到某个已满的页中时，存储引擎会将该页分裂成两个页面来容纳该行，这就是一次分裂操作。页分裂会导致表占用更多的磁盘空间。 
聚簇索引可能导致全表扫描变慢，尤其是行比较稀疏，或者由于页分裂导致数据存储不连续的时候。

```````


#####3 请描述一下mysql主从服务器之间是如何同步数据的，什么样的sql会造成主从无法正确同步？


#####4 如何查看当前linux服务器的磁盘io状态？

`````
iostat -x -k
`````

#####5 如何查看linux服务器的cpu负载

``````
top(top程序提供了一个动态的、实时的、直观的运行中的系统。它能显示系统的主要信息，并且把由内核管理的任务列表显示出来。top命令监控CPU利用率，进程状态和内存利用率。顶部区域包含了整个系统状态的信息，从左到右，从上到下，依次是：当前时间，正常运行时间，负载均衡，进程总数和概况，CPU状态，内存占用情况，swap占用情况。)

mpstat/sar/….
``````

#####6 如何查看一个进程当前打开的文件？ 

`````
查看所有进程的文件打开数 
lsof |wc -l 
查看某个进程打开的文件数 
lsof -p pid |wc -l
`````


#####7 什么是管道命令？

``````
其实这个管道命令“|”仅能处理经由前面一个命令传来的正确信息，也就是standard output的信息，对于stdandard error并没有直接处理能力。在每个管道后面接的第一个数据必定是“命令”，而且这个命令必须要能够接受standard input的数据才行，这样的命令才可以是“管道命令”，例如Less、more、head、tail等都是可以接收standard input的管道命令。
``````

#### [面试题来源](https://blog.csdn.net/whq19890827/article/details/52684573)