2024年1月26日发(作者:)
Mysql面试题及答案
1 创立 poll 表,用于记录单项选择投票用户的数据
字段包含 id[ Autoincreace ] , ip , time , iid(
int 型)
写出 create 上述 table 的完好 sql 语句 drop table if exists poll;
create table poll
(
id int unsigned not null auto_increment,
ip varchar(15) not null,
time datetimenot null,
iid int not null,
primary key (id)
)
2 写出将一个选择 2 号选项的 ip 为 127.0.0.1 的用户在目前时间的投票记录到数据库的 SQL
用户选则的选项,
insert into poll (ip,time,iid) values( 127.0.0.1 ,now(),2);
3 写出知足下面条件的 SQL 语句
item 表的构造为 id( 就是 poll 表中的 iid)
的选项的文字 )
请查问并返回 10 条记录 ,包含 ip 和用户选择的选项的文字
, descp( 用户选择
1
4
在 因
投 票 人数 太 多 , 网 站
常出
too
many
connection
的 , 供给解决方案
方法一:加大 MySql 的最大 接数
mysql
的最大 接数默 是
100,
个数 于并 接好多
的数据 用是 不 的, 当 接 求大于默 接数后,
就会出
没法 接数据 的 ,所以我 需要把它适合 大一些,
改正 max_connections=1000
方法二,不用 mysql
数据 ,改 直接写文件, 方法参照
5
若非要用 mysql , 可
方法三:因为用 mysql
句 用数据 ,在每次之 行 句
前,会做一个 的 量用来翻开数据 ,所以你在使用 mysql 句的 候, 得在每次 用完 mysql 以后就关 mysql 量
5 在成功解决 接数的 后, 程序运转 慢, 是 mysql 并 太多,表被 定的 象 重, 供给解决方案
于 量大的, 原来就不介绍使用数据 , 能够考 直接写到文本中,依据 的 量,先定 倘假如 100 个文件文件名挨次
, ⋯ ,每实用 投票的 候,随机往此中的一个文件中写入投票信息。 的 候,再 全部文本文件中的数据 行剖析。必需的 候,再 入数据
drop table if exists item;
2
create table item
(
id int not null,
descp varchar(200) not null,
primary key (id)
);
select ,
from poll A,item B
where =
limit 10
6 因为用户实在太多, 所以又分派给你两台服务器, 你会怎样来
安排这 3 台服务器
关于服务器分派,其实有好几种方案(建议采纳
LINUX 主机),
先列出一个解决方案。
1 . 考虑到电信,网通(南北差别)互接见速度慢的问题,能够
让电信的用户走电信的线,网通的走网通的线。大概能够这样分派,
国内南方用户(电信誉户)拥有一台
服务器 A;北方用户(网通用
C。用
户)拥有一台服务器
B。外国的用户也能够考虑给一台服务器
户接见的时候,第一接见的是针对外国的服务器, 那台机器是电信 网
通的用户接见速度都差不多的(能够考虑就租用香港或是什么地方
的),经过服务器 C 判断后直接跳到相应的服务器。统计时三台机器
的数据合起来。
3
7 此刻开始要求同一 ip 不可以重复投票
,请指出怎样对数据表进
行相应的改正
ALTER TABLE `phpinterview`.`poll`
`IX_poll_ip`(`ip`);
ADD unique
INDEX
8. 原有数据已经有好多重复 ip 的数据了,所以我们把它导出为一个 txt ,格式和上面的 poll 一致,用 TAB 键间隔,请写一段程序,删除
ip 有重复的记录,并统计每个投票选项的投票数
// 读取文本并放入数组
$apoll = file("c: ");
// 对每一行数据进行切割 ,进而获得了一个二维数组
for ($i=0;$i
$poll[$i] = split(" ",$apoll[$i]);
// 获得 IP、出现的次数数据
$arrIP=array();
for($i=0;$i
$arrIP[$poll[$i][1]]=isset($arrIP[$poll[$i][1]])
$arrIP[$poll[$i][1]]+1:1;
// 获得选项、投票个数
4
$arrRes=array();
for($i=0;$i
if($arrIP[$poll[$i][1]]==1)
$arrRes[$poll[$i][3]]=isset($arrRes[$poll[$i][3]])
$arrRes[$poll[$i][3]]+1:1;
var_dump($arrRes);
>
mysql5.0
测试版:
SELECT *
into outfile c: .txt
FROM `testok`;
create TABLE (id int,ip varchar(15),time
datetime,iid int);
LOAD DATA INFILE c: .txt
into table testok;
delete A from testok A,(select ip from testok B group by ip
having count(*) >1) B
where =
5
select iid,count(*) from testok B group by
6
本文发布于:2024-01-26 00:42:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1706200941576.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |