簡體   English   中英

如何加快數據庫進程?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM