1. 寫出字符串‘0’,分別在php和js中轉化布爾類型,值是true還是false?
答:
在php中
$a = '0';$a = (bool) $a;var_dump($a); 值為false
在js中
官方說明:note:if the value parameter is omitted, or is 0, -0, null, , false, undefined, or nan, the object is set to false. otherwise it is set to true (even with the string false)!
測試:
<script type="text/javascript"> var a='0'; if(a){ alert(1); }else{ alert(0); }</script> 值為true 相關專題推薦:2020年thinkphp面試題及答案(大全)
2. 簡述一下優化mysql使用的方法以及使用到的工具和命令
答:
1.使用pgcc(pentium gcc)編譯器 該編譯器(http://www.goof.com/pcg/)針對運行在奔騰處理器系統上的程序進行優化,用pgcc編譯mysql源代碼,總體性能可提高10%%u3002當然如果你的服務器不是用奔騰處理器,就不必用它了,因為它是專為奔騰系統設計的。
2.僅使用你想使用的字符集編譯mysql mysql目前提供多達24種不同的字符集,為全球用戶以他們自己的語言插入或查看表中的數據。卻省情況下,mysql安裝所有者這些字符集,熱然而,最好的選擇是指選擇一種你需要的。如,禁止除latin1字符集以外的所有其它字符集:
%>./configure -with-extra-charsets=none [–other-configuration-options]
3.將mysqld編譯成靜態執行文件 將mysqld編譯成靜態執行文件而無需共享庫也能獲得更好的性能。通過在配置時指定下列選項,可靜態編譯mysqld。
%>./configure -with-mysqld-ldflags=-all-static [–other-configuration-options]
4.配置樣本 下列配置命令常用于提高性能:
%>cflags="-o6 -mpentiumpro -fomit-frame-pointer" cxx=gcc cxxflags="-o6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared5.確保運用正確的編譯固然重要,但這只是成功的第一步,配置眾多的mysql變量同樣對服務器的正常運行起關鍵作用。
你可以將這些變量的賦值存在一個配置文件中,以確保它們在每次啟動mysql時均起作用,這個配置文件就是my.cnf文件。 mysql已經提供了幾個my.cnf文件的樣本,可在/usr/local/mysqld/share/mysql/目錄下找到。這些文件分別命名為my-small.cnf、 my-medium.cnf、my-large.cnf和my-huge.cnf,規模說明可在描述配置文件適用的系統類型標題中找到。
如果在只有相當少內存的系統上運行mysql,而且只是偶爾的用一下,那么my-small.cnf會比較理想,因為它命令mysqld只使用最少的資源。類似地,如果你計劃構建電子商務超市,而且系統擁有2g內存,那么你可能要用到mysql-huge.cnf文件了。
為了利用這些文件中的一個,你需要復制一個最適合需求的文件,改名為my.cnf。你可以選擇使用配置文件三種作用范圍的一種: global:將my.cnf文件復制到服務器的/etc目錄下,這使得配置文件中的變量作用于全局,即對所有服務器上的mysql數據庫服務器有效。
local:將my.cnf文件復制到[mysql-install-dir]/var/目錄下,使得my.cnf作用于特定的服務器。[mysql-install-dir]表示mysql安裝目錄。
user:你可以再限制作用于特定的用戶,將my.cnf復制到用戶的根目錄下。 究竟如何設置my.cnf中的這些變量呢?更進一步說,你可以設置哪一個變量。
雖然所用變量對mysql服務器相對通用,每一個變量與mysql的的某些組件有更特定的關系。如變量max_connects歸在mysqld類別下。執行下列命令即可知道:%>/usr/local/mysql/libexec/mysqld–help 它顯示大量的選項及與mysqld相關的變量。
你可以很容易地在該行文字之下找出變量:
possible variables for option --set-variable (-o) are然后你可以如下設置my.cnf中的那些變量:
set-variable = max_connections=100它設置mysql服務器的最大并發連接數為100。要確保在my.cnf文件中的[mysqld]標題下插入變量設置。
事務安全 dbd berkeley db(dbd)表是支持事務處理的表,由sleepycat軟件公司(http://www.sleepycat.com)開發。它提供mysql用戶期待已久的功能-事務控制。
事務控制在任何數據庫系統中都是一個極有價值的功能,因為它們確保一組命令能成功地執行。
非事務安全 heap heap表是mysql中存取數據最快的表。這是因為他們使用存儲在動態內存中的一個哈希索引。另一個要點是如果mysql或服務器崩潰,數據將丟失。
isam isam表是早期mysql版本的缺省表類型,直到myiasm開發出來。建議不要再使用它。
merge merge是一個有趣的新類型,在3.23.25之后出現。一個merge表實際上是一個相同myisam表的集合,合并成一個表,主要是為了效率原因。這樣可以提高速度、搜索效率、修復效率并節省磁盤空間。
myiasm 這是mysql的缺省表類型。它基于iasm代碼,但有很多有用的擴展。myiasm比較好的原因: myiasm表小于iasm表,所以使用較少資源。 myiasm表在不同的平臺上二進制層可移植。 更大的鍵碼尺寸,更大的鍵碼上限。
指定表類型 你可在創建表時指定表的類型。下例創建一個heap表:
mysql>create table email_addresses type=heap ( ->email char(55) not null, ->name char(30) not null, ->primary key(email) );
bdb表需要一些配置工作,參見http://www.mysql.com/doc/b/d/bdb_overview.html。
更多的表類型 為了使mysql管理工作更有趣,即將發布的mysql 4.0將提供兩種新的表類型,稱為innobase和gemeni。
show 你可能有興趣知道mysql服務器究竟更了什么,下列命令給出一個總結: 、
mysql>show status; 它給出了一個相當長的狀態變量及其值的列表。有些變量包含了異常終止客戶的數量、異常終止連接的數量、連接嘗試的次數、最大并發連接數和大量其他有用的信息。這些信息對找出系統問題和低效極具價值。 show還能做更多的事情。它可以顯示關于日志文件、特定數據庫、表、索引、進程和權限表中有價值的信息。詳見mysql手冊。
explain 當你面對select語句時,explain解釋select命令如何被處理。這不僅對決定是否應該增加一個索引,而且對決定一個復雜的join如何被mysql處理都是有幫助的。
optimize optimize語句允許你恢復空間和合并數據文件碎片,對包含變長行的表進行了大量更新和刪除后,這樣做特別重要。optimize目前只工作于myiasm和bdb表。
5. 一張mysql大數據表有幾千萬數據,但有一自增id字段,且為主鍵,要遍歷此表的所有數據,寫出有效的方法和sql(禁止使用limit n,m)。
答:
案例分析:數據表 collect ( id, title ,info ,vtype) 就這4個字段,其中 title 用定長,info 用text, id 是逐漸,vtype是tinyint,vtype是索引。10萬數據的效果。
select id,title from collect limit 100
注冊一個精品域名需要多少錢給大家分享一下日常學習python的心得(詳解)TiOps,支持容器,支持多云安全遠程運維,疫情期間免費開放,助力遠程辦公域名怎么掙錢的網站進不去-其他問題電腦中微軟專用強制卸載工具Windows Installer Clean Up的安裝方法域名過戶的資料已經提交到你們專用郵箱了瀾起科技和騰訊云服務器哪個好一點