1.修改配置文件,擴(kuò)大查詢內(nèi)存方面的,例如tmp_table_size,還有別的根據(jù)實際情況放大點
創(chuàng)新互聯(lián)公司是一家專業(yè)提供高港企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、做網(wǎng)站、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為高港眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。
2.優(yōu)化查詢語句,盡量避免查詢整張表的數(shù)據(jù)
sql語句中,添加記錄的語法為:insert into 表名 (col1,col2....coln)values(value1,value2.....valuen);
其中,如果你插入的每一列都是順序插入,無一缺漏的話,(col1,col2...coln)可以省略。
也就是上式也可以簡化為:insert into 表名?values(value1,value2.....valuen);
看了你寫的sql代碼,問題出在insert into 的整體語句出現(xiàn)在了不該出現(xiàn)的地方,只需做一點小改動即可解決,如下圖:
解析:insert into語句需要在user表已經(jīng)存在的情況下才可以使用。而你原來的語句中,將上圖2中的語句插入到了create table user的語句中,致使create table user 語句未能成功執(zhí)行,所以才會報錯。
而將“INSERT INTO user(uid,tel) values('甲','3354986');”整條語句直接拿出來放在“ENGINE=InnoDB DEFAULT CHARSET=gbk;”后面之后,整個sql就可以順利執(zhí)行了。
擴(kuò)展資料:
當(dāng)mysql大批量插入數(shù)據(jù)的時候就會變的非常慢,?mysql提高insert into 插入速度的方法有三種:
1、第一種插入提速方法:
如果數(shù)據(jù)庫中的數(shù)據(jù)已經(jīng)很多(幾百萬條), 那么可以?加大mysql配置中的 bulk_insert_buffer_size,這個參數(shù)默認(rèn)為8M
舉例:bulk_insert_buffer_size=100M;
2、第二種mysql插入提速方法:
改寫所有 insert into 語句為?insert?delayed into
這個insert delayed不同之處在于:立即返回結(jié)果,后臺進(jìn)行處理插入。
3、第三個方法: 一次插入多條數(shù)據(jù):
insert中插入多條數(shù)據(jù),舉例:
insert into table values('11','11'),('22','22'),('33','33')...;
以下是摘抄mysql中文手冊的解釋:
MySQL 3.22限制的表大小為4GB。由于在MySQL 3.23中使用了MyISAM存儲引擎,最大表尺寸增加到了65536TB(2567 – 1字節(jié))。由于允許的表尺寸更大,MySQL數(shù)據(jù)庫的最大有效表尺寸通常是由操作系統(tǒng)對文件大小的限制決定的,而不是由MySQL內(nèi)部限制決定的。
InnoDB存儲引擎將InnoDB表保存在一個表空間內(nèi),該表空間可由數(shù)個文件創(chuàng)建。這樣,表的大小就能超過單獨文件的最大容量。表空間可包括原始磁盤分區(qū),從而使得很大的表成為可能。表空間的最大容量為64TB。
在下面的表格中,列出了一些關(guān)于操作系統(tǒng)文件大小限制的示例。這僅是初步指南,并不是最終的。要想了解最新信息,請參閱關(guān)于操作系統(tǒng)的文檔。
操作系統(tǒng)
文件大小限制
Linux 2.2-Intel 32-bit
2GB (LFS: 4GB)
Linux 2.4+
(using ext3 filesystem) 4TB
Solaris 9/10
16TB
NetWare w/NSS filesystem
8TB
win32 w/ FAT/FAT32
2GB/4GB
win32 w/ NTFS
2TB(可能更大)
MacOS X w/ HFS+
2TB