由于没有人回答,因此我将继续我的建议。
我觉得你的大数据库最适合使用
remote有
typeahead.js。快速示例:
$('#user-search').typeahead({ name: 'user-search', remote: '/search.php?query=%QUERY' // you can change anything but %QUERY});它的作用是当您在中键入字符时,
input#user-search它将向页面发送AJAX请求,并将
search.php查询作为输入内容。
在上,
search.php您可以捕获此查询并在您的数据库中查找它:
$query = $_GET['query'].'%'; // add % for LIKE query later// do query$stmt = $dbh->prepare('SELECt username FROM users WHERe username LIKE = :query');$stmt->bindParam(':query', $query, PDO::PARAM_STR);$stmt->execute();// populate results$results = array();foreach ($stmt->fetchAll(PDO::FETCH_COLUMN) as $row) { $results[] = $row;}// and return to typeaheadreturn json_enpre($results);当然,由于您的数据库很大,因此您应该优化SQL查询以加快查询速度,也许可以缓存结果,等等。
在预输入方面,要减少查询数据库的负载,可以指定
minLength或
limit:
$('#user-search').typeahead({ name: 'user-search', remote: '/search.php?query=%QUERY', minLength: 3, // send AJAX request only after user type in at least 3 characters limit: 10 // limit to show only 10 results});因此,数据库的大小实际上并不重要,这种方法应该可以很好地工作。
这是PHP中的一个示例,但是对于任何后端,当然都应该相同。希望你得到基本的想法。



