MYSQL:在一千万条数据里面随机查找一条数据(要求查找时间小于0.1秒)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL:在一千万条数据里面随机查找一条数据(要求查找时间小于0.1秒)相关的知识,希望对你有一定的参考价值。

1,mysql:在一千万条数据里面随机查找一条数据(要求查找时间小于0.1秒)
2,优化这段php代码
echo "<p>result is very".$_GET['query']."</p>";

这两个面试题不会做,请教下大家

参考技术A 如果是自增ID的话。
先在php中随机函数rand()获得一个1到一千万的数字,select 字段 from where 自增字段名=数字 limit 1。
或者 select 字段 from 表名 order by rand() limit 1
关键都是 limit 1,这是告诉mysql查获一条记录后,不再继续查找其他符合条件的记录。

第二个应该是主要考虑$_GET['query']的优化吧;
第一是防sql注入,第二是转义html符号。
$query=$_GET['query'];
$query=addslashes($query);
$query=htmlentities($query,ENT_QUOTES,GB2312或者utf-8);
echo "<p>result is very".$query."</p>";
参考技术B 你这样就已经是查询5条随机的记录了呀。

mysql 表记录超过十万条后,查询速度特别慢?

在mysql数据库中。我有一个表。他里面的记录数已经有二十多万条了。查我在里面查询的时候速度特别慢。我把里面的记录删了二十万以。速度就很快了。有没有什么办法。在不删除记录的情况下。让他快起来?

参考技术A 是不是考虑在你要查询的列上建立个索引,20万数据按照目前主流机器的配置来说应该不会很慢的,看看你的my.ini的配置使用的内存等资源是不是太少了 参考技术B 建立常用字段的索引,优化查询语句,尽量少使用长字符串的比较,多利用数字类型的字段,比如id、价格之类的。 参考技术C 优化查询语句吧,比如说在模糊查找时尽量不要用“%keyword%”这种前面有%的形式,这样数据库就要对每条记录进行比对 参考技术D 即使你做优化也是没法避免这种问题的,因为你记录了之后查找时的记录集也大了,话的时间肯定要变长

以上是关于MYSQL:在一千万条数据里面随机查找一条数据(要求查找时间小于0.1秒)的主要内容,如果未能解决你的问题,请参考以下文章

php MySQL使用rand函数随机取记录(转)

从mysql数据表中随机取出一条记录

Mysql面试题及千万级数据查询优化

一千万条(以上)新闻信息,用啥数据库比较合适?

mysql插入数据出现error1114 table is full

mysql随机获取一条或者多条数据