[英]How can I speed up the database process?
我有一個MySQL數據庫,其中有9000行和10個字段。 它是從Excel文件導入的,因此全部放在一個表中。
當我運行查詢時(已縮小選擇范圍),我將獲得7000行返回到Codeigniter視圖頁面。 瀏覽器凍結30秒鍾,並要求我終止該頁面,因為沒有響應。 如果我等待,我將最終看到結果。 我想知道是否有任何方法可以改善這一點?
理想情況下,提出一個更好的查詢,或為您的用戶提供更好的搜索詞。 如果他們最終需要瀏覽所有7000行,則需要某種分頁。 一種選擇是AJAX分頁,如本文所述 。 基本上,您對每行組都有一個新請求,但是用戶停留在同一頁面上。
從閱讀有關sql's selects中的'limit'開始以分頁輸出開始。
您是否在某種循環中運行查詢?
同意分頁答案,使用限制和偏移量。 如果您運行10每頁多數民眾贊成在700查詢。 我將如下使用codeigniter的分頁庫。
$route['controller/(:num)'] = 'controller/index/$1';
--
public function index($offset=0)
{
//set a limit of 10 per result
$limit = 10;
//query the database
$q = "SELECT * FROM {table_name} LIMIT={limit} OFFSET={offset} ORDER BY {date} desc";
//count the results
$count = count({query results});
//setup pagination config
$config = array(
'base_url' => site_url('controller/'),
'total_rows' => $count,
'per_page' => $limit,
'uri_segment' => 2
);
//init the pagigination
$this->pagination->initialize($config);
//load the view and pagination data
$this->load->view('link_to_template', array(
'pagination' => $this->pagination->create_links(),
'results' => {query results}
));
}
為特定列添加索引(索引); 如果列是文本,則添加FULLTEXT索引
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.